あなたの機能は本当にあなたがおそらく3xMxNに3dに2dのではなく、2xMxNないマップしたい2つのパラメータを取る場合。このため
gridx, gridy = np.meshgrid(np.linspace(0, 1, 50), np.linspace(0, 1, 50))
あるいはあなたの機能f
は、配列引数を処理しない場合のように軸
gridy, gridx = np.ix_(np.linspace(0, 1, 50), np.linspace(0, 1, 50))
を交換しないという利点を有しているix_
より経済的に使用のようなものにあなたの最初の行を変更@ Jacques Gaudinは、おそらくあなたが望むものであると指摘しているnp.vectorize
です。 vectorize
は主に便利な機能であるため、処理が高速化されないことに注意してください。それはix_
を使用して、実際にあなたのケースでresult
は、50×50の配列、すなわち、の3組が出力ごとにグループ化されていることを
f_wrapped = np.vectorize(f)
result = f_wrapped(gridy, gridx)
注意を働く理由は、放送のような便利なことを行います。ベクトル化された関数を連鎖させたい場合に便利です。 1つの大きな配列にすべてを入れたい場合は、result
をarray
に変換し、場合によってはtranspose
を使用して軸を再配置します。
triplets_last = np.array(result).transpose((1, 2, 0))
それは '(x、y)の配列は、'値は 'NのXのN'グリッド上でどのように見えるか私には不明ですが...あなたはタプルの2次元配列を持っていること、これが暗示しますか? – mgilson