numpyで2つの2次元配列の要素的な外積を行いたい。numpy要素単位の外積
A.shape = (100, 3) # A numpy ndarray
B.shape = (100, 5) # A numpy ndarray
C = element_wise_outer_product(A, B) # A function that does the trick
C.shape = (100, 3, 5) # This should be the result
C[i] = np.outer(A[i], B[i]) # This should be the result
単純な実装では以下のことが可能です。
スタックオーバーフローからより良い解決策が得られました。
big_outer = np.multiply.outer(A, B)
tmp = np.swapaxes(tmp, 1, 2)
C_tmp = [tmp[i][i] for i in range(len(A)]
C = np.array(C_tmp)
私はforループを取り除くベクトル化された実装を探しています。 誰かがアイデアを持っていますか? ありがとうございました!
- そうのような、素朴な愚かな実装に関わるイテレータの代表者であること、それらの表記法を構文と考えます'、' 100,3,100,5 'の形を与えます – Eric