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以外的填充值?