[英]Replace randomly an index from numpy vector
我想創建一個方法,該方法將接收大小為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
選擇一個不是nan
索引:
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.]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.