我有兩個形狀類似于下面代碼塊中給出的陣列。我需要在for回圈中廣播該操作以提高我的代碼的性能(此操作執行數百萬次)
我知道這看起來很簡單,但我在過去 30 分鐘內一直在嘗試,但找不到解決方案。
import numpy as np
# Input arrays
N1, N2, N3 = 500, 2, 1700
aa = np.random.uniform(0., 1., (N1, N2, N3))
bb = np.random.randint(0, N1, N3)
# Block that needs to be broadcasted to improve the performance
arr = []
for i, x in enumerate(aa.T):
arr.append(x[:, bb[i]])
# Final array
arr = np.array(arr).T
uj5u.com熱心網友回復:
aa[bb,:,np.arange(aa.shape[2])].T
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433845.html
上一篇:如何在python中創建一個(100,19)大小的陣列,每行作為19個值的向量[0000000000010000000]?
