我在下面写了一个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数组中的零?
发布于 2015-01-05 19:15:20
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.]])https://stackoverflow.com/questions/27778299
复制相似问题