xem xét ví dụ đơn giản sau:Làm thế nào để gán một mảng numpy 1D cho mảng numpy 2D?
X = numpy.zeros([10, 4]) # 2D array
x = numpy.arange(0,10) # 1D array
X[:,0] = x # WORKS
X[:,0:1] = x # returns ERROR:
# ValueError: could not broadcast input array from shape (10) into shape (10,1)
X[:,0:1] = (x.reshape(-1, 1)) # WORKS
Ai đó có thể giải thích tại sao NumPy có vectơ hình dạng (N,) chứ không phải (N, 1)? Cách tốt nhất để làm việc đúc từ mảng 1D thành mảng 2D là gì?
Tại sao tôi cần điều này? Vì tôi có mã chèn kết quả x
vào mảng 2D X
và kích thước x thay đổi theo thời gian nên tôi có X[:, idx1:idx2] = x
hoạt động nếu x
là 2D quá nhưng không nếu x là 1D.
Bạn có thể thêm một số bình luận khác không? Nó không rõ ràng với tôi làm thế nào bạn có ở đây từ mã ban đầu, và tại sao điều này giải quyết vấn đề. – brandones