考慮下面的簡單示例:如何將1D numpy數組分配給2D numpy數組?
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
有人可以解釋爲什麼numpy的具有形狀的矢量(N,),而不是(N,1)? 從一維數組轉換爲二維數組的最佳方式是什麼?
爲什麼我需要這個? 因爲我有一個代碼插入結果x
到二維數組X
和x的大小隨時變化,所以我有X[:, idx1:idx2] = x
如果x
也是2D也可以,但如果x是1D,則不起作用。
你能否再添加一些評論?我不清楚你是如何從原始代碼中獲得的,以及爲什麼這能解決問題。 – brandones