我想创建一个方法,它将接收一个1xn大小的numpy向量,其中包含多个值,其中还包含多个nan,并将随机用nan替换非nan索引。我想要返回结果和被替换元素的索引。
def replace_index(array): index = np.random.randint(array.shape[1], size=1) array[index] = NaN return array, index
如何检查计算的索引是否已不是nan?
你可以用 numpy.where 和 numpy.isnan 在值不是 nan ,然后使用 np.random.choice 选择一个不是 南 :
numpy.where
numpy.isnan
nan
np.random.choice
南
array = np.array([[1,np.nan,2,np.nan,3,4]]) not_nan_idx = np.random.choice(np.where(~np.isnan(array))[1]) not_nan_idx # 2 array[0, not_nan_idx] = np.nan array # array([[ 1., nan, nan, nan, 3., 4.]])