我試圖將一維數(shù)組中的數(shù)據(jù)插入到二維數(shù)組中,并仍然保持二維數(shù)組的形狀。我下面的代碼將二維數(shù)組重新格式化為一維。另外,為什么我現(xiàn)在有 26 個索引?我缺少什么?import numpy as nponeD_Array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25])twoD_Array = np.zeros((5, 5))print(oneD_Array.shape)print(oneD_Array)print()print()print(twoD_Array.shape)print(twoD_Array)for i in range(len(oneD_Array), -1, -1): # for subArray in twoD_Array: twoD_Array = np.insert(oneD_Array, 0, [i])print()print(twoD_Array)print(twoD_Array.shape)輸出是:(25,)[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25](5, 5)[[0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.]][ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25](26,)
3 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊
您只需使用np.reshape
:
twoD_Array = np.reshape(oneD_Array, (5, 5))
輸出:
array([[ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]])

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個贊
因?yàn)?code>np.insert實(shí)際上是在給定索引處將元素插入到數(shù)組中。
怎么樣:
twoD_Array.ravel()[:] = oneD_Array

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊
如果你堅(jiān)持使用循環(huán),可以這樣寫:
for i in range(len(oneD_Array)): twoD_Array[i//twoD_Array.shape[1], i%twoD_Array.shape[1]] = oneD_Array[i]
但這絕對不是最快的方法。
在我的機(jī)器上,對于 500x500 陣列,我的循環(huán)需要 85 毫秒,使用 ndarray.ravel 需要 223 微秒,使用 np.reshape 需要 1.17 微秒,使用 ndarray.reshape 需要 357 納秒。所以我會選擇
twoD_Array = oneD_Array.reshape((5, 5))
添加回答
舉報
0/150
提交
取消