用 nan 替换 NumPy 整数数组中的零
Replace the zeros in a NumPy integer array with nan
我在下面写了一个 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]
如何用 nan 替换 NumPy 数组中的零?
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.]])
我在下面写了一个 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]
如何用 nan 替换 NumPy 数组中的零?
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.]])