亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從列表列表中替換列表中的所有元素

從列表列表中替換列表中的所有元素

墨色風雨 2022-05-19 13:57:01
我有一個列表列表,其中 1 個列表中充滿了 nans。l_of_l=[[1,2,3],[nan,nan,nan],[3,4,5]]我想用 nans 替換 l_of_l 的列表為零:所需的輸出是l_of_l=[[1,2,3],[0,0,0],[3,4,5]]這是我的代碼:     for list1 in l_of_l:               if all(np.isnan(list1)) == True:               list1 = [0] * len(list1)但是我不確定如何在不需要生成新列表的情況下將結果再次分配給 l_of_l
查看完整描述

3 回答

?
慕雪6442864

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.]])


查看完整回答
反對 回復 2022-05-19
?
慕標琳琳

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.]]


查看完整回答
反對 回復 2022-05-19
?
一只甜甜圈

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.]]


查看完整回答
反對 回復 2022-05-19
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號