我有一个矩阵
f=numpy.array([[1,2,3],[2,3,4],[7,8,9]])
>>> f
array([[1, 2, 3],
[2, 3, 4],
[7, 8, 9]])
我想用NaN替换第一行中的值。我该怎么做?我试过了
f[0:1]=numpy.nan(3)
但它不起作用,但
f[0:1]=numpy.zeros(3)
工作得很好。我该怎么办呢?
答案 0 :(得分:1)
整数类型不允许nan
中的numpy
。
这样可行:
import numpy as np
f = np.array([[1,2,3],
[2,3,4],
[7,8,9]], dtype=float)
f[0, :] = np.nan
# [[ nan nan nan]
# [ 2. 3. 4.]
# [ 7. 8. 9.]]
答案 1 :(得分:1)
执行此操作:
import numpy
f = numpy.array([[1,2,3],[2,3,4],[7,8,9]])
f = f.astype(float)
#Put nan in the first row of the matrix f
f[0,] = numpy.nan
<强>结果
print(f)
array([[nan, nan, nan],
[ 2., 3., 4.],
[ 7., 8., 9.]])
更多详情
键入时:
numpy.nan(3)
你可能得到了这个:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object is not callable
这是因为调用numpy.nan
时没有任何参数。