ナン

2015-01-05 5 views
9

でnumpyの整数配列にゼロを交換して、私は下のPythonスクリプトを書いた:ナン

import numpy as np 

arr = np.arange(6).reshape(2, 3) 
arr[arr==0]=['nan'] 
print arr 

しかし、私はこのエラーを得た:

Traceback (most recent call last): 
    File "C:\Users\Desktop\test.py", line 4, in <module> 
    arr[arr==0]=['nan'] 
ValueError: invalid literal for long() with base 10: 'nan' 
[Finished in 0.2s with exit code 1] 

ナンでnumpyの配列にゼロを交換する方法?

+0

の可能な重複 - (http://stackoverflow.com/questions/6701714/numpy-replace-a-number-with-nan)numpyのはNaNと番号を交換] – trblnc

答えて

18

np.nanfloat型を持つ:それを含むアレイは、このデータ型(またはcomplexまたはobjectデータ型)を持っている必要がありますので、この値を代入しようとする前に、あなたはarrをキャストする必要があるかもしれません。

文字列値'nan'arrの型に一致する整数型に変換できないため、エラーが発生します。

>>> arr = arr.astype('float') 
>>> arr[arr == 0] = 'nan' # or use np.nan 
>>> arr 
array([[ nan, 1., 2.], 
     [ 3., 4., 5.]]) 
関連する問題