亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Numpy:將數據從一維數組插入二維數組

Python Numpy:將數據從一維數組插入二維數組

慕姐4208626 2023-12-20 10:36:34
我試圖將一維數組中的數據插入到二維數組中,并仍然保持二維數組的形狀。我下面的代碼將二維數組重新格式化為一維。另外,為什么我現在有 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貢獻1847條經驗 獲得超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]])


查看完整回答
反對 回復 2023-12-20
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

因為np.insert實際上是在給定索引處將元素插入到數組中。

怎么樣:

twoD_Array.ravel()[:] = oneD_Array


查看完整回答
反對 回復 2023-12-20
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

如果你堅持使用循環,可以這樣寫:

for i in range(len(oneD_Array)):
    twoD_Array[i//twoD_Array.shape[1], i%twoD_Array.shape[1]] = oneD_Array[i]

但這絕對不是最快的方法。

在我的機器上,對于 500x500 陣列,我的循環需要 85 毫秒,使用 ndarray.ravel 需要 223 微秒,使用 np.reshape 需要 1.17 微秒,使用 ndarray.reshape 需要 357 納秒。所以我會選擇

twoD_Array = oneD_Array.reshape((5, 5))


查看完整回答
反對 回復 2023-12-20
  • 3 回答
  • 0 關注
  • 335 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號