以下のaとbのように、それぞれ配列(ベクトル)が複数格納されたデータがあり、この配列同士の全組み合わせに対し、別の関数で定義した配列演算をしたいと思っています(この場合、決定係数という統計指標の算出を使っています)。
この時、for文を二つ回さずに実行する方法を教えていただけないでしょうか?
np.meshgridを使おうとしたのですが、なかなかうまくいかず、止まっています。
Python
1import numpy as np 2 3def calc(x,y): 4 return 1 - sum((x - y) ** 2) / sum((x - y.mean()) ** 2) 5 6a = np.array([[0, 0, 0, 0, ], [5, 5, 5, 10], [1, 2, 10, 12], [-3, 0, -2, 12]]) 7b = np.array([[1, 2, 3, 4, ], [8, 0, 10, 22], [5, 6, 7, 0], [-1, 0, 10, -12]]) 8 9# 以下は計算可能だが、aとbの全配列組み合わせで実施したい(a[0]〜a[3]×b[0]〜b[3]のイメージ) 10calc(a[0], b[1])
回答3件
あなたの回答
tips
プレビュー