25
Hãy xem xét một loạt các hình thức sau đây (chỉ là ví dụ):Hình dạng một mảng trong NumPy
[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]
[12 13]
[14 15]
[16 17]]
Đó là hình dạng là [9,2]. Bây giờ tôi muốn chuyển đổi mảng để mỗi cột sẽ trở thành một hình dạng [3,3], như thế này:
[[ 0 6 12]
[ 2 8 14]
[ 4 10 16]]
[[ 1 7 13]
[ 3 9 15]
[ 5 11 17]]
Các giải pháp rõ ràng nhất (và chắc chắn "không pythonic") là để khởi một mảng của zero với kích thước phù hợp và chạy hai vòng lặp nơi nó sẽ được lấp đầy dữ liệu. Tôi quan tâm đến giải pháp phù hợp với ngôn ngữ ...
Lưu ý rằng 'b' hiện không tiếp giáp, có nghĩa là không thể định hình lại tại chỗ:' b.reshape (9, 2) ' trả về một bản sao, không phải là một dạng xem của cùng một dữ liệu, và 'b.shape = (9, 2)' sẽ tăng và lỗi. – Jaime
Nhận xét rất quan trọng bởi @Jaime, vì điểm của Shape là cho phép thay đổi kích thước lạc quan mà không cần bản sao. Big deal với bộ dữ liệu khổng lồ – deepelement