1
A
とB
の2つの配列がそれぞれ(n1,m1,m2)
と(n2,m1,m2)
であるとします。行列C
の数値を(n1,n2)
と計算して、C[i,j] = sum((A[i,:,:] - B[j,:,:])^2)
としたいと思います。ここで私はこれまで持っているものです。numpy - 第1軸に沿った2つの配列間の「要素ごとの」差を計算する
import numpy as np
A = np.array(range(1,13)).reshape(3,2,2)
B = np.array(range(1,9)).reshape(2,2,2)
C = np.zeros(shape=(A.shape[0], B.shape[0]))
for i in range(A.shape[0]):
for j in range(B.shape[0]):
C[i,j] = np.sum(np.square(A[i,:,:] - B[j,:,:]))
C
これを行うための最も効率的な方法は何ですか? Rでは、outer
などのベクトル化アプローチを使用します。 Pythonにも同様のメソッドがありますか?
ありがとうございました。