23

私の配列は 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 を使用してそれを実行するにはどうすればよいですか?

(記録のために、マトリックスは、分類を実行したいジオイメージの結果です)

4

3 に答える 3

45

配列にあるという事実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 のドキュメントを参照してください。

于 2012-09-14T12:47:49.747 に答える
10

試す:

a[a>0] = 1
a[a<0] = -1
于 2012-09-14T12:47:30.523 に答える