3

派手なメッシュグリッドの値をフィルタリングしたいと思います:

X,Y = np.mgrid[-10:10,-10:10]

この場合、すべての座標を削除したいと思いx**2 + y**2 <= 2ます。ただし、たとえば配列を直接フィルタリングしようとすると、

filter(lambda x,y: x**2 + y**2 >= 2, np.meshgrid[-10:10,-10:10])

配列の構造を適切に処理していないため、エラーが発生します。

これを正しく行うためのヒントをいただければ幸いです。

4

2 に答える 2

3

numpy.whereを使用して、各配列を個別にフィルタリングすることで、必要な結果を得ることができましたが、where条件で両方を参照しています。

X,Y = np.mgrid[-10:10,-10:10]
X,Y = np.where(X**2 + Y**2 > 2, X, 0), np.where(X**2 + Y**2 > 2, Y, 0)

これにより、新しい 2D 配列が作成されます。これは、matplotlib に必要なものです。この質問を見てくださった皆様、ありがとうございました!

于 2013-04-01T03:00:47.990 に答える