私の配列は2Dマトリックスであり、負の値と正の値に加えてnumpy.nanの値があります。
>>> array
array([[ nan, nan, nan, ..., -0.04891211,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
...,
[-0.02510989, -0.02520096, -0.02669156, ..., nan,
nan, nan],
[-0.02725595, -0.02715945, -0.0286231 , ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]], dtype=float32)
そして、すべての正の数を数値に置き換え、すべての負の数を別の数値に置き換えたいと思います。
Python/numpyを使用してそれを実行するにはどうすればよいですか?
(記録のために、マトリックスは、分類を実行したいジオイメージの結果です)
配列にnp.nan
があるという事実は重要ではありません。派手なインデックスを使用するだけです。
x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg
np.nans
を置き換えたい場合:
x[np.isnan(x)] = something_not_nan
ファンシーインデックスの詳細 チュートリアル および NumPyドキュメント 。
試してください:
a[a>0] = 1
a[a<0] = -1