我正在尝试用 NaN 替换我的部分数组(假设是给定数组长度的 10%)。我知道如果我只想替换特定值(例如大于 255),我可以使用 arr[arr > 255] = np.NaN
来完成。但是如果我想要随机选择替换值怎么办?
答案 0 :(得分:1)
这是您尝试的吗:
import numpy as np
import random
an_array = np.array([5, 6, 7,2,4,5,6,7,8,9])
an_array = an_array.astype("float")
percent_len = round(len(an_array) * 10 / 100)
print(f'percent len : {percent_len}')
index_visited = []
print('Before:')
print(an_array)
for i in range(percent_len):
while True:
some_index = random.randint(0,percent_len)
if some_index in index_visited:
continue
else:
index_visited.append(some_index)
break
an_array[some_index] = np.nan
print()
print('After:')
print(an_array)
结果: