我是 Python 的新手。我可以在NumPy上獲得一些幫助嗎?索引選擇中的掩蔽如何作業?
我的第一個掩蔽就像
array[mask][:,0]
# array([1905., 1920., 1929., 1938., 1948., 1965., 2002., 2008., 2016.,2022.]
我理解它是如何使用索引的但我的第二個
numpy.array[mask1][:,mask2]
# [[1905. 18.9]
# [1920. 20.6]
# [1929. 18.9]
# [1938. nan]
# [1948. 19.9]
# [1965. nan]
# [2002. nan]
# [2008. 19.5]
# [2016. 19.4]
# [2022. nan]]
# [[1905. 18.9]
# [1920. 20.6]
# [1929. 18.9]
# [1938. nan]
# [1948. 19.9]
# [1965. nan]
# [2002. nan]
# [2008. 19.5]
# [2016. 19.4]
# [2022. nan]]
我不明白為什么它回傳一個 (10,2) 形狀陣列
希望我以正確的方式提問,不便之處敬請諒解。
uj5u.com熱心網友回復:
掩碼基本上說選擇該列、行或軸。numpy 中使用了兩種主要方法。
- Boolean [True, False, True, ...] 與陣列或軸具有相同的形狀
- 任意形狀的索引 [2,2,0] 表示按該順序選擇軸/值 2、2 和 0。
np.array([1,2,3])[[2,2,0,0]] -> [3,3,1,1]注意雙括號,它表示從軸 0 中選擇索引 [2,2,0,0]
在布爾掩碼的情況下,您會得到一個形狀,即每個掩碼中 True 值的總和。
在索引掩碼的情況下,您的結果是掩碼的形狀。
numpy.array[mask1][:,mask2]將具有大致的形狀(mask1.shape,mask2.shape),但當然這些可能超過 2 個維度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511854.html
標籤:Python麻木的
