3 回答
TA贡献1812条经验 获得超5个赞
您可以使用以下列表理解:
import numpy as np
[[0 if np.isnan(j) else j for j in i] for i in l_of_l]
# [[1, 2, 3], [0, 0, 0], [3, 4, 5]]
如果您想避免 importing numpy,尽管数据表明您应该使用它,但您实际上可以这样做:
[[0 if j!=j else j for j in i] for i in l_of_l]
# [[1, 2, 3], [0, 0, 0], [3, 4, 5]]
根据定义NaNs,这永远不会等于它们自己
或者直接构建一个numpy数组并使用nan_to_num:
np.nan_to_num(np.array(l_of_l))
array([[1., 2., 3.],
[0., 0., 0.],
[3., 4., 5.]])
TA贡献1830条经验 获得超9个赞
单次np.num_to_nan通话:
import numpy as np
l_of_l = np.array([[1,2,3],[np.nan, np.nan, np.nan],[3,4,5]])
np.nan_to_num(l_of_l, copy=False)
print(l_of_l)
输出:
[1. 2. 3.]
[0. 0. 0.]
[3. 4. 5.]]
TA贡献1836条经验 获得超5个赞
您可以使用numpy.nan_to_num,因为numpy无论如何您都在使用
import numpy as np
l_of_l= np.array([[1, 2, 3],[np.nan, np.nan, np.nan], [3, 4, 5]])
print(np.nan_to_num(l_of_l))
印刷
[[1. 2. 3.]
[0. 0. 0.]
[3. 4. 5.]]
添加回答
举报