我無法弄清楚 r 中的 is.na() 函式與 python 的等價物是什么。我正在使用 np.nan 但它不起作用。我要做的是在到達 NA 元素之前添加串列中的所有元素。這是我的問題:
import numpy as np
x=[3,6,7,np.nan,-3,0]
k=len(x)
total_before_NA=0
for i in range(0,k):
if (np.nan(x[i])):
break
total_before_NA= total_before_NA x[i]
print(total_before_NA)
在不使用 sum 函式的情況下,我應該得到的答案是 16。我是否使用了正確的功能?我究竟做錯了什么?
uj5u.com熱心網友回復:
您可以使用np.isnan()to locate NaN,然后np.argwhere()查找索引。找到第一個索引min()并最終np.sum在第一個索引之前的切片上使用NaN:
index_first_nan = np.argwhere(np.isnan(x)).min()
np.sum(x[0:index_first_nan])
uj5u.com熱心網友回復:
解決方案
您可以使用它np.isnan來檢查 NaN 值。
import numpy as np
x=[3,6,7,np.nan,-3,0]
k=len(x)
total_before_NA=0
for i in range(0,k):
if (np.isnan(x[i])):
break
total_before_NA= total_before_NA x[i]
print(total_before_NA)
uj5u.com熱心網友回復:
我不知道任何 R,但似乎您想要做的是總結串列中 NA 之前的所有值。如果是這樣,那么我建議使用index()獲取第一個 NA 的索引,然后進行簡單的切片和求和:
i = x.index(np.nan)
total_before_NA = sum(x[:i])
在您的示例中,這將使total_before_NA16。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515904.html
標籤:Python列表麻木的呐
