假設我有一個多維陣列,例如:
a = array([[[86, 27],
[26, 59]],
[[ 1, 16],
[46, 5]],
[[71, 85],
[ 6, 71]]])
假設我有一個一維陣列 ( b),其中一些值可以在我的多維陣列 ( a) 中看到:
b = [26, 16, 6, 71]
現在我想a用零替換陣列中所有不相交的值。我想得到以下結果:
a = array([[[0, 0],
[26, 0]],
[[ 0, 16],
[ 0, 0]],
[[71, 0],
[ 6, 71]]])
我怎么能做到這一點?
我嘗試了幾種編碼方式,但都不起作用。not in我希望以下行可以作業,但我認為以這種格式使用存在問題:
a = np.where(a not in b, int(0), a)
嘗試此操作時出現以下錯誤:
arr = np.where(arr not in required_intensities, int(0), arr)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我不確定下一步該嘗試什么。有任何想法嗎?
uj5u.com熱心網友回復:
np.isin()非常適合:
a[~np.isin(a, b)] = 0
輸出:
>>> a
array([[[ 0, 0],
[26, 0]],
[[ 0, 16],
[ 0, 0]],
[[71, 0],
[ 6, 71]]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/466208.html
標籤:Python 数组 麻木的 numpy-ndarray 面具
上一篇:Python-遍歷pandasDataFrame直到滿足條件,然后繼續迭代直到滿足不同的條件
下一篇:如何從串列結果中洗掉/n?
