Python 替换数组中的值

Python 替换数组中的值,python,numpy,Python,Numpy,作为使用数组的操作中另一个值的替换值,或者如何在数组中搜索并用另一个值替换一个值 例如: array ([[NaN, 1., 1., 1., 1., 1., 1.] [1., NaN, 1., 1., 1., 1., 1.] [1., 1., NaN, 1., 1., 1., 1.] [1., 1., 1., NaN, 1., 1., 1.] [1., 1., 1., 1., NaN, 1., 1.] [1., 1., 1.,

作为使用数组的操作中另一个值的替换值,或者如何在数组中搜索并用另一个值替换一个值

例如:

array ([[NaN, 1., 1., 1., 1., 1., 1.]
       [1., NaN, 1., 1., 1., 1., 1.]
       [1., 1., NaN, 1., 1., 1., 1.]
       [1., 1., 1., NaN, 1., 1., 1.]
       [1., 1., 1., 1., NaN, 1., 1.]
       [1., 1., 1., 1., 1., NaN, 1.]
       [1., 1., 1., 1., 1., 1., NaN]])
它可以将NaN替换为0。 感谢您的回复

您可以这样做:

import numpy as np
x=np.array([[np.NaN, 1., 1., 1., 1., 1., 1.],[1., np.NaN, 1., 1., 1., 1., 1.],[1., 1., np.NaN, 1., 1., 1., 1.], [1., 1., 1., np.NaN, 1., 1., 1.], [1., 1., 1., 1., np.NaN, 1., 1.],[1., 1., 1., 1., 1., np.NaN, 1.], [1., 1., 1., 1., 1., 1., np.NaN]])
x[np.isnan(x)]=0
np.isnan(x)
x
NaN
的地方返回一个布尔数组。
x[boolean\u array]=0
用于在布尔数组为
True
的位置分配值0


有关花式索引和更多内容的详细介绍,请参见。

现在有一个特殊功能:

a = numpy.nan_to_num(a)

以下是问题中的示例数组:

import numpy as np
a = np.where(np.eye(7), np.nan, 1)
您可以使用和函数创建新数组
b

b = np.where(np.isnan(a), 0, a)
或者使用就地功能直接修改
a
阵列:

np.place(a, np.isnan(a), 0)  # returns None

@里卡多:让x成为你们的numpy数组。在反滤器中做的时候,刚刚保存了我的培根。[图像处理]但这将涉及一个与
a
类型和形状相同的临时变量,它对大型矩阵很重要。@dashesy从1.13版开始,您可以就地执行:a=numpy.nan\u to_num(a,copy=False)。。。有关参数“copy”的详细信息:是创建x的副本(True)还是就地替换值(False)。仅当强制转换到阵列不需要副本时,才会发生就地操作。默认值为True。版本1.13中新增。有没有办法选择0以外的填充值?