177
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi muốn chuyển đổi một mảng 1 chiều thành mảng 2 chiều bằng cách chỉ định số lượng cột trong mảng 2D. Một cái gì đó sẽ hoạt động như thế này:
> import numpy as np
> A = np.array[[1,2,3,4,5,6]]
> B = vec2matrix[A,ncol=2]
> B
array[[[1, 2],
[3, 4],
[5, 6]]]
Numpy có một chức năng hoạt động như chức năng trang điểm của tôi "Vec2Matrix" không? .
Hỏi ngày 25 tháng 9 năm 2012 lúc 2:23Sep 25, 2012 at 2:23
Bạn muốn
B = np.reshape[A, [-1, 2]]
5 mảng.B = np.reshape[A, [-1, 2]]
trong đó
B = np.reshape[A, [-1, 2]]
6 tạo kích thước của kích thước mới từ kích thước của mảng đầu vào.
nbro
14.3K27 Huy hiệu vàng104 Huy hiệu bạc188 Huy hiệu đồng27 gold badges104 silver badges188 bronze badges
Đã trả lời ngày 25 tháng 9 năm 2012 lúc 2:27Sep 25, 2012 at 2:27
Matt Ballmatt BallMatt Ball
348K98 Huy hiệu vàng636 Huy hiệu bạc699 Huy hiệu Đồng98 gold badges636 silver badges699 bronze badges
0
Bạn có hai tùy chọn:
Nếu bạn không còn muốn hình dạng ban đầu, thì dễ nhất chỉ là gán một hình dạng mới cho mảng
a.shape = [a.size//ncols, ncols]
Bạn có thể chuyển
7 bằngB = np.reshape[A, [-1, 2]]
6 để tự động tính toán hình dạng thích hợp. Hãy chắc chắn rằngB = np.reshape[A, [-1, 2]]
9, nếu không bạn sẽ gặp một số vấn đề.B = np.reshape[A, [-1, 2]]
Bạn có thể nhận được một mảng mới với chức năng
0, hoạt động chủ yếu giống như phiên bản được trình bày ở trêna.shape = [a.size//ncols, ncols]
new = np.reshape[a, [-1, ncols]]
Khi có thể,
1 sẽ chỉ là một cái nhìn của mảng ban đầua.shape = [a.size//ncols, ncols]
2, có nghĩa là dữ liệu được chia sẻ. Tuy nhiên, trong một số trường hợp, mảnga.shape = [a.size//ncols, ncols]
1 sẽ thay vào đó là acopy. Lưu ý rằnga.shape = [a.size//ncols, ncols]
0 cũng chấp nhận một từ khóa tùy chọna.shape = [a.size//ncols, ncols]
5 cho phép bạn chuyển từ thứ tự Row-Major C sang đơn hàng Cột-Major Fortran.a.shape = [a.size//ncols, ncols]
0 là phiên bản hàm của phương thứca.shape = [a.size//ncols, ncols]
7.a.shape = [a.size//ncols, ncols]
Nếu bạn không thể tôn trọng yêu cầu
B = np.reshape[A, [-1, 2]]
9, bạn sẽ bị mắc kẹt với việc phải tạo một mảng mới. Bạn có thể sử dụng chức năng a.shape = [a.size//ncols, ncols]
9 và trộn nó với a.shape = [a.size//ncols, ncols]
0, chẳng hạn như>>> a =np.arange[9]
>>> np.resize[a, 10].reshape[5,2]
Đã trả lời ngày 25 tháng 9 năm 2012 lúc 8:03Sep 25, 2012 at 8:03
Pierre Gmpierre GMPierre GM
19.1k3 Huy hiệu vàng54 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges54 silver badges65 bronze badges
0
Thử một cái gì đó như:
B = np.reshape[A,[-1,ncols]]
Bạn sẽ cần đảm bảo rằng bạn có thể chia số lượng phần tử trong mảng của mình cho
new = np.reshape[a, [-1, ncols]]
1. Bạn cũng có thể chơi với thứ tự trong đó các số được kéo vào new = np.reshape[a, [-1, ncols]]
2 bằng cách sử dụng từ khóa a.shape = [a.size//ncols, ncols]
5.Đã trả lời ngày 25 tháng 9 năm 2012 lúc 4:19Sep 25, 2012 at 4:19
JoshadeljoshadelJoshAdel
64K24 Huy hiệu vàng138 Huy hiệu bạc136 Huy hiệu đồng24 gold badges138 silver badges136 bronze badges
Nếu mục đích duy nhất của bạn là chuyển đổi mảng 1D X thành mảng 2D, chỉ cần làm:
X = np.reshape[X,[1, X.size]]
Đã trả lời ngày 14 tháng 1 năm 2020 lúc 18:09Jan 14, 2020 at 18:09
ArunarunArun
6358 Huy hiệu bạc13 Huy hiệu đồng8 silver badges13 bronze badges
Chuyển đổi một mảng 1 chiều thành một mảng 2 chiều bằng cách thêm trục mới.
a=np.array[[10,20,30,40,50,60]]
b=a[:,np.newaxis]--it will convert it to two dimension.
derloopkat
6.06115 Huy hiệu vàng38 Huy hiệu bạc43 Huy hiệu đồng15 gold badges38 silver badges43 bronze badges
Đã trả lời ngày 10 tháng 1 năm 2021 lúc 4:38Jan 10, 2021 at 4:38
Cũng có một cách đơn giản, chúng ta có thể sử dụng chức năng định hình lại theo một cách khác:
A_reshape = A.reshape[No_of_rows, No_of_columns]
Tamás Sengel
53.1K29 Huy hiệu vàng156 Huy hiệu bạc202 Huy hiệu đồng29 gold badges156 silver badges202 bronze badges
Đã trả lời ngày 7 tháng 1 năm 2021 lúc 3:07Jan 7, 2021 at 3:07
1
Bạn có thể sử dụng ____34 từ gói Numpy.
import numpy as np
a = np.array[[[1, 2],
[3, 4],
[5, 6]]]
a_flat = a.flatten[]
print[f"original array: {a} \nflattened array = {a_flat}"]
Output:
B = np.reshape[A, [-1, 2]]
0Đã trả lời ngày 20 tháng 3 năm 2019 lúc 16:19Mar 20, 2019 at 16:19
RafirafiRafi
192 Huy hiệu Đồng2 bronze badges
2
B = np.reshape[A, [-1, 2]]
1hoặc nhận một cái mới
B = np.reshape[A, [-1, 2]]
2Điều này sẽ tạo ra kích thước +1, bằng với việc thêm một giá đỡ ở ngoài cùng
Đã trả lời ngày 18 tháng 4 năm 2020 lúc 2:27Apr 18, 2020 at 2:27
ZDL-soZDL-soZDL-so
3881 Huy hiệu vàng6 Huy hiệu bạc7 Huy hiệu đồng1 gold badge6 silver badges7 bronze badges
B = np.reshape[A, [-1, 2]]
3
Milo
3.2679 Huy hiệu vàng28 Huy hiệu bạc43 Huy hiệu đồng9 gold badges28 silver badges43 bronze badges
Đã trả lời ngày 25 tháng 11 năm 2019 lúc 14:38Nov 25, 2019 at 14:38
2
Thay đổi mảng 1D thành mảng 2D mà không sử dụng Numpy.
B = np.reshape[A, [-1, 2]]
4
Đã trả lời ngày 6 tháng 9 năm 2019 lúc 10:37Sep 6, 2019 at 10:37