numpyを使用して次の関数をベクトル化しようとしていますが、完全に失われています。2つの配列のインデックス作成中にナンシーベクトル化
A = ndarray: Z x 3
B = ndarray: Z x 3
C = integer
D = ndarray: C x 3
擬似コード:
entries = []
means = []
For i in range(C):
for p in range(len(B)):
if B[p] == D[i]:
entries.append(A[p])
means.append(columnwise_means(entries))
return means
例は次のようになります。
A = [[1,2,3],[1,2,3],[4,5,6],[4,5,6]]
B = [[9,8,7],[7,6,5],[1,2,3],[3,4,5]]
C = 2
D = [[1,2,3],[4,5,6]]
戻り値:
[average([9,8,7],[7,6,5]), average(([1,2,3],[3,4,5])] = [[8,7,6],[2,3,4]]
私はnp.where、np.argwhereを使用して試してみました、 np.meanなどがありますが、望みの効果を得ることはできません。どんな助けでも大歓迎です。
ありがとうございます!
あなたはAとBを逆転させると思いますか? –
あなたはどういう意味なのかよく分かりません..... – user2069641
「平均([9,8,7]、[7,6,5])、平均(([1,2、 3]、[3,4,5])] '?擬似コード*からはっきりと分かりません。 – Divakar