以下に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配列のゼロをnanに置き換える方法は?
np.nan
の型はfloat
です。これを含む配列はこのデータ型(または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.]])