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.]]
添加回答
舉報