【问题标题】:Replace the zeros in a NumPy integer array with nan用 nan 替换 NumPy 整数数组中的零
【发布时间】:2015-03-02 22:02:13
【问题描述】:

我在下面写了一个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 数组中的零?

【问题讨论】:

标签: python arrays numpy nan


【解决方案1】:

np.nan 具有float 类型:包含它的数组也必须具有此数据类型(或complexobject 数据类型),因此您可能需要在尝试分配此值之前强制转换arr

出现错误是因为字符串值'nan' 无法转换为整数类型以匹配arr 的类型。

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

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 2013-06-08
    • 2011-10-05
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2013-04-19
    • 2013-09-12
    相关资源
    最近更新 更多