42

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

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

最初の 2 つを計算し (私はこれらのテストを数千回ループで実行しています)、その後終了します。問題が何であるかについて誰か考えがありますか?

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

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

4

1 に答える 1

51

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

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

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

于 2013-06-05T22:02:04.117 に答える