Python 将NumPy整数数组中的零替换为nan
我在下面编写了一个python脚本:Python 将NumPy整数数组中的零替换为nan,python,arrays,numpy,nan,Python,Arrays,Numpy,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: invali
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]
回溯(最近一次呼叫最后一次):
文件“C:\Users\Desktop\test.py”,第4行,在
arr[arr==0]=['nan']
ValueError:以10为基数的long()的文本无效:“nan”
[在0.2秒内完成,退出代码为1]
如何将NumPy数组中的零替换为nan?
np.nan
具有类型float
:包含它的数组也必须具有此数据类型(或复数或对象数据类型),因此在尝试分配此值之前,您可能需要强制转换arr
出现错误的原因是字符串值'nan'
无法转换为整数类型以匹配arr
的类型
>>> arr = arr.astype('float')
>>> arr[arr == 0] = 'nan' # or use np.nan
>>> arr
array([[ nan, 1., 2.],
[ 3., 4., 5.]])
可能重复的