我有 2 個陣列:
import numpy as np
A = np.array([[np.nan,np.nan,0],[4,5,6],[7,8,9]])
B = np.zeros((len(A),len(A[0])))
對于 A 中的每個 NaN,我想用 np.nan 替換 B 中相應索引處的零。我怎樣才能做到這一點 ?我試過戴口罩,但無法讓它發揮作用。
B = np.ma.masked_where(np.isnan(A) == True, np.nan)
實際上,我正在使用更大的陣列 (582x533),所以我不想手動完成。
uj5u.com熱心網友回復:
您可以np.isnan(A)直接使用:
B = np.zeros_like(A)
B[np.isnan(A)] = np.nan
np.where當您想B直接構造時很有用:
B = np.where(np.isnan(A), np.nan, 0)
uj5u.com熱心網友回復:
您可以創建np.zeros與A.shape再利用np.where象下面這樣:
(這種方法構造 B 兩次)
>>> import numpy as np
>>> A = np.array([[np.nan,np.nan,0],[4,5,6],[7,8,9]])
>>> B = np.zeros(A.shape)
>>> B = np.where(np.isnan(A) , np.nan, B)
>>> B
array([[nan, nan, 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330961.html
