Logo Zephyrnet

Cách xử lý kích thước trong NumPy

Ngày:

Cách xử lý kích thước trong NumPy

Tìm hiểu cách xử lý các chiều của ma trận Numpy bằng cách sử dụng np.reshape, np.newaxis và np.expand_dims, được minh họa bằng mã Python.


By Vidhi Chung, Nhà khoa học dữ liệu

Hình

Hình ảnh của Garik Barseghyan từ Pixabay

np.newaxis

  • Nó được sử dụng để tăng kích thước của mảng hiện có. Nó sử dụng toán tử cắt để tạo lại mảng.
  • Thứ nguyên được thêm tạm thời vào vị trí của np.newaxis trong mảng. 'Không' cũng có thể được sử dụng thay cho np.newaxis.

np.reshape:

  • Nó được sử dụng để định hình lại mảng theo bố cục mong muốn.

np.expand_dims:

  • Nó mở rộng hình dạng của một mảng bằng cách chèn một trục mới vào vị trí trục trong hình dạng mảng được mở rộng

Chúng ta hãy xem một số ứng dụng chính trong đó các hoạt động xử lý kích thước NumPy ở trên có ích:

Ứng dụng 1Xếp hạng 1 mảng chuyển đổi sang vectơ hàng/cột

 
Ở đây, chúng ta đã tạo một mảng gồm 4 phần tử có hình dạng (4,) được gọi là mảng Mảng hạng 1.

Array of 4 elements: [0 1 2 3]
Notice the shape, this is rank 1 array: (4,)
after transpose: (4,)


Tuy nhiên, mảng Hạng 1 thường dẫn đến kết quả không rõ ràng vì chúng không hoạt động như vectơ hàng/cột một cách nhất quán. Như đã trình bày ở trên, nếu chúng ta đổi vị của x1, hình dạng của nó vẫn giữ nguyên.

Do đó, bạn nên chỉ định rõ ràng kích thước của một mảng. Điều này có thể đạt được bằng cả 3 kỹ thuật được giải thích ở trên:

  • sử dụng np.newaxis:
row vector: [[0 1 2 3]]
(1, 4) column vector: [[0] [1] [2] [3]]
(4, 1)


  • sử dụng np.reshape
Row vector using reshape: [[0 1 2 3]]
column vector using reshape: [[0] [1] [2] [3]]


  • sử dụng np.expand_dims
Row vector using expand_dims: [[0 1 2 3]]
column vector using expand_dims: [[0] [1] [2] [3]]


Ứng dụng 2Tăng kích thước

 
Hãy tạo một mảng x2 khác có hình dạng (2,4,28) và kiểm tra xem chúng ta có thể mở rộng kích thước của x2 từ 3D lên 5D như thế nào

Hình ảnh cho bài viết

Điều quan trọng cần lưu ý ở trên là np.reshape cũng cho phép bạn phân chia kích thước.

Ứng dụng 3: Phát sóng

 
Theo Tài liệu NumPy:

phát sóng mô tả cách xử lý các mảng có hình dạng khác nhau trong các phép tính số học.

Ví dụ: khi chúng tôi thêm 2 mảng sau, nó hiển thị 'ValueError' do hình dạng không khớp:

Hình ảnh cho bài viết

Hãy xem cách np.newaxis tăng kích thước của một trong các mảng bên dưới:

Hình ảnh cho bài viết

Vì chúng ta chủ yếu cần điều chỉnh kích thước của mảng để hoạt động phát sóng thích hợp, nên các cách tăng kích thước np.reshape và np.expand_dims đều hoạt động tốt như nhau (như trong ví dụ trước).

Cảm ơn vì đã đọc !!!

Sổ ghi chép Jupyter có mã đầy đủ được đặt tại đây.

 
Tài liệu tham khảo:

 
Tiểu sử: Vidhi Chung tò mò về sức mạnh của dữ liệu và thường được gọi là Nhà khoa học dữ liệu.

Nguyên. Đăng lại với sự cho phép.

Liên quan:

Nguồn: https://www.kdnuggets.com/2020/07/numpy-handle-dimensions.html

tại chỗ_img

Tin tức mới nhất

tại chỗ_img