我試圖找到一個numpy陣列arr中的每個專案,它也在一個任意串列中lst并替換它們,但是雖然arr > 0會生成一個布爾陣列以便于屏蔽,arr in lst但只適用于 all() 或 any() 這不是我需要的.
示例輸入:陣列(1, 2, 3, 4, 5)、串列[2, 4, 6, 8]
輸出:陣列(1, 0, 3, 0, 5)
我設法用 for 回圈得到了相同的結果:
for i in range(len(arr)):
if arr[i] in lst:
arr[i] = 0
只是想知道是否有其他方法可以將陣列與串列分開。
uj5u.com熱心網友回復:
您可以使用numpy.isin:
a = np.array((1, 2, 3, 4, 5))
lst = [2, 4, 6, 8]
a[np.isin(a, lst)] = 0
給你一個a:
array([1, 0, 3, 0, 5])
uj5u.com熱心網友回復:
您可以迭代lst并仍然使用 numpy 的索引。
for element in lst:
arr[arr == element] = 0
uj5u.com熱心網友回復:
你也可以使用這個。
arr = (1, 2, 3, 4, 5)
lst = [2, 4, 6, 8]
new_arr = tuple('Replace With Anything' if a in lst else a for a in arr)
print(new_arr)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463750.html
上一篇:使用python從文本/javascript中提取資料
下一篇:Numpy陣列逆并加入
