[問題] 用numpy broadcasting 填入資料
各位前輩好,小的最近遇到一個問題,
假設有兩個 numpy 一維矩陣 xIdxData,yIdxData,
內容分別為 [0.1,0.2,0.3] 和 [0.4,0.5,0.6]
我想要讓 xIdxData 和 yIdxData 組成一個 3 x 3 x 2 維的矩陣,
如圖:https://imgur.com/a/nDZy3Ps
然後再複製10個同樣數值的矩陣放入data中,
用 for 迴圈寫的話可以達到效果但速度很慢(原始資料為4000 x 3000 x 2)
程式碼如下:
datSize = 10
xIdxData = np.array([0.1,0.2,0.3])
yIdxData = np.array([0.4,0.5,0.6])
data = np.zeros((10,3,3,2))
for dataIdx in range(datSize):
for y in range(len(yIdxData)):
for x in range(len(xIdxData)):
data[dataIdx][y][x][0] = xIdxData[x]
data[dataIdx][y][x][1] = yIdxData[y]
請問各位前輩有沒有能夠把 numpy broadcasting 套用在這個問題上 ? 感恩!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.63.140 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1589167067.A.B43.html
推
05/11 12:14,
5年前
, 1F
05/11 12:14, 1F
→
05/11 12:16,
5年前
, 2F
05/11 12:16, 2F
→
05/11 12:16,
5年前
, 3F
05/11 12:16, 3F
→
05/11 12:16,
5年前
, 4F
05/11 12:16, 4F
→
05/11 12:16,
5年前
, 5F
05/11 12:16, 5F
→
05/11 12:18,
5年前
, 6F
05/11 12:18, 6F
推
05/11 12:36,
5年前
, 7F
05/11 12:36, 7F
抱歉 我上傳的圖片的錯誤的結果,程式跑出來的才是正確的,感謝e大,是我想要的沒錯!
※ 編輯: NMOSFET (42.77.63.140 臺灣), 05/11/2020 13:43:30
推
05/11 19:54,
5年前
, 8F
05/11 19:54, 8F
→
05/11 19:54,
5年前
, 9F
05/11 19:54, 9F
謝謝T大,我試試看!
※ 編輯: NMOSFET (36.237.13.67 臺灣), 05/12/2020 01:42:00
→
05/12 15:33,
5年前
, 10F
05/12 15:33, 10F
→
05/12 15:33,
5年前
, 11F
05/12 15:33, 11F
推
05/13 00:13,
5年前
, 12F
05/13 00:13, 12F
→
05/13 00:13,
5年前
, 13F
05/13 00:13, 13F
→
05/13 00:13,
5年前
, 14F
05/13 00:13, 14F
→
05/13 00:14,
5年前
, 15F
05/13 00:14, 15F
→
05/13 00:14,
5年前
, 16F
05/13 00:14, 16F
謝謝 G大和J大的方法,完全把for拿掉真的變快很多
※ 編輯: NMOSFET (42.77.204.234 臺灣), 05/15/2020 16:52:28
Python 近期熱門文章
PTT數位生活區 即時熱門文章