Chuyển đổi hình dạng mảng NumPy
- Trang Trước Hình dạng mảng NumPy
- Trang Tiếp Theo Thực hiện mảng NumPy
Reshape mảng
Reshape có nghĩa là thay đổi hình dạng của mảng.
Hình dạng của mảng là số lượng phần tử trong mỗi chiều.
Bằng cách重塑, chúng ta có thể thêm hoặc xóa维度 hoặc thay đổi số lượng phần tử trong mỗi维度.
Từ 1D重塑 thành 2D
Ví dụ
Chuyển đổi mảng 1D có 12 phần tử thành mảng 2D.
Bức hình ngoài cùng sẽ có 4 mảng, mỗi mảng chứa 3 phần tử:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
Từ 1D重塑 thành 3D
Ví dụ
Chuyển đổi mảng 1D có 12 phần tử thành mảng 3D.
Bức hình ngoài cùng sẽ có 2 mảng, mỗi mảng chứa 3 mảng, mỗi mảng chứa 2 phần tử:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Chúng ta có thể重塑 thành bất kỳ hình dạng nào không?
Có, chỉ cần số phần tử cần重塑 trong hai hình dạng đó bằng nhau.
Chúng ta có thể chuyển đổi mảng 1D 8 phần tử thành mảng 2D 2 hàng 4 cột, nhưng chúng ta không thể chuyển đổi thành mảng 2D 3 hàng 3 cột vì điều này sẽ cần 3x3 = 9 phần tử.
Ví dụ
Thử chuyển đổi mảng 1D có 8 phần tử thành mảng 2D có 3 phần tử trên mỗi cột (sẽ gây ra lỗi):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Trả về bản sao hay bản xem trước?
Ví dụ
Kiểm tra mảng trả về là bản sao hay bản xem trước:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Ví dụ trên trả về mảng gốc, vì vậy nó là một视图.
Chiều không rõ
Bạn có thể sử dụng một chiều 'không rõ'.
Điều này có nghĩa là bạn không cần phải chỉ định số chính xác cho một chiều trong phương pháp reshape.
Chuyển giao -1
Là giá trị, NumPy sẽ tính toán số này cho bạn.
Ví dụ
Chuyển đổi mảng 1D có 8 phần tử thành mảng 3D có 2 phần tử 2x2:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Ghi Chú:Chúng ta không thể chuyển đổi -1
Chuyển giao cho nhiều chiều hơn.
Flattening mảng
Flattening the arrays (Flattening mảng) là việc chuyển đổi mảng đa chiều thành mảng 1D.
Chúng ta có thể sử dụng reshape(-1)
Để làm điều này.
Ví dụ
Chuyển đổi mảng thành mảng 1D:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Ghi Chú:Có rất nhiều chức năng để thay đổi hình dạng mảng của numpy flatten, ravel, và có thể sắp xếp lại các phần tử rot90, flip, fliplr, flipud v.v. Các chức năng này thuộc về phần trung cấp đến cao cấp của numpy.
- Trang Trước Hình dạng mảng NumPy
- Trang Tiếp Theo Thực hiện mảng NumPy