2012-09-14 27 views
7

我的陣列是一個二維矩陣,它已numpy.nan值除消極和積極的價值觀:我怎樣纔能有條件地改變一個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執行該操作?

(根據記錄,該矩陣是geoimage的結果,我想執行分類)

+0

數組中有正數,他們只是不顯示在預覽 – user528025

回答

24

,你有你的數組中np.nan的事實不應該的問題。如果要更換你的np.nans

x[x>0] = new_value_for_pos 
x[x<0] = new_value_for_neg 

:花哨的索引a tutorialNumPy documentation

x[np.isnan(x)] = something_not_nan 

更多信息只需用花哨的索引。

+0

而且我在過去兩天的較好時間裏與它鬥爭......如果您遇到問題,它可以運行 – user528025

+0

@ user528025,我強烈建議您閱讀一些我鏈接到的文檔。這是相當有幫助的,你很快goona愛是多麼容易是操縱'ndarrays' ... –

+0

是的,當我意識到有多簡單的解決方案,我開始尋找材料,以幫助我更好地理解工具:) – user528025

3

嘗試:

a[a>0] = 1 
a[a<0] = -1 
+1

謝謝你的答案。雖然它是正確的,但我並沒有選擇它,因爲皮埃爾的回答更加完整 – user528025

相關問題