web-dev-qa-db-ja.com

ValueError:形状の不一致:オブジェクトを単一の形状にブロードキャストすることはできません

私はSciPyのpearsonr(x,y)メソッドを使用していますが、次のエラーが発生する理由がわかりません。

ValueError:形状の不一致:オブジェクトを単一の形状にブロードキャストすることはできません

最初の2つを計算し(これらのテストの数千をループで実行しています)、その後死にます。誰が問題が何であるかについて何かアイデアを持っていますか?

r_num = n*(np.add.reduce(xm*ym))

これはエラーが発生するpearsonrメソッドの行です。どんな助けでも大歓迎です。

22
Alex Brashear

この特定のエラーは、行の算術演算で使用されている変数の1つが、同じ行の別の変数と互換性のない形状(つまり、異なるスカラーと非スカラーの両方)を持っていることを意味します。 nnp.add.reduce()の出力は両方ともスカラーであるため、これは問題がxmymにあることを意味します。 xおよびy入力からそれぞれの平均を引いたもの。

これに基づいて、私の推測では、xyの入力は互いに形状が異なり、要素ごとの乗算には互換性がありません。

**技術的には、同じ行の変数に互換性のない形状があるわけではありません。唯一の問題は、変数が一時的(関数出力など)であるかどうかにかかわらず、2つの変数の追加や乗算などの形状に互換性がない場合です。同じ行に異なる形状を持つ2つの変数は、数式が評価される前に他の何かが問題を修正する限り問題ありません。

26
AMacK