2
3d numpy array
があるとします。N
の要素の平均を特定の軸に沿ってどのように構築できますか?だから、基本的には何か:numpyでの多次元インデクシング
a = np.random.randint(10, size=(100,100,100)) #axes x,y,z
result = np.mean(a, axis = 2)
は、しかし、私はaxis z
沿っN
最大値に平均値を制限したいです。この問題を説明するために、これはループを使用するソリューションです。
a = np.random.randint(10, size=(100,100,100)) #axes x,y,z
N = 5
maxima = np.zeros((100,100,N)) #container for mean of N max values along axis z
for x in range(100): #loop through x axis
for y in range(100): #loop through y axis
max_idx = a[x, y, :].argsort()[-N:] #indices of N max values along z axis
maxima[x, y, :] = a[x, y , max_idx] #extract values
result = np.mean(maxima, axis = 2) #take the mean
多次元索引付けで同じ結果を得たいと思います。