我有以下情況:
假設我有一個陣列,并且我想在實際的非空值和之前的非空值之間減去(絕對值)。
[np.nan, np.nan, 10, np.nan, np.nan, 5, np.nan, 3, 6, np.nan, np.nan, 7]
預期輸出:
[nan, nan, nan, nan, nan, 5, nan, 2, 3, nan, nan, 1]
使用沒有 for 回圈的 numpy 獲得此結果的好方法是什么?
我只使用 for 回圈解決了它:
x = [np.nan, np.nan, 10, np.nan, np.nan, 5, np.nan, 3, 6, np.nan, np.nan, 7]
idx = np.where(~np.isnan(x))[0]
output = np.full(len(x), np.nan)
for i, j in enumerate(idx):
if i > 0:
output[j] = abs(x[idx[i]] - x[idx[i - 1]])
uj5u.com熱心網友回復:
您已經完成了大部分作業:
output[idx[1:]] = np.abs(np.diff(x[idx]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473665.html
