簡體   English   中英

如何通過考慮 Python 中的條件來創建 NumPy 數組的子元素?

[英]How to create subelements of a NumPy Array by taking in consideration a criteria in Python?

這是我關於 Stack Overflow 的第一個問題,所以我會盡量准確。 我目前正在使用 NumPy 對象數組處理 Python 3.8,我嘗試從這個 NumPy 數組中提取一些符合條件的子元素。

例如,如果我考慮這個 NumPy 數組: https : //i.stack.imgur.com/3SE7T.png ,我有一些值設置為 0 和一些 !=0。 我希望能夠通過考慮設置為 0 的值從該數組中提取一些特定的子元素。這張圖片中給出了我想要提取的內容的示例: https://i.stack.imgur。 com/GsG3S.png

子元素的邊界由 NumPy 數組的邊界自行定義,事實上,有一些值為 !=0 的鄰居和一些值為“Nan”的鄰居......最后我更感興趣的是這些子元素的“輪廓”。

目前,我真的不知道如何解決這個問題,我在問自己如何正確獲取邊界,如何在 NumPy 數組中移動以收集所需的所有單元格......

在此先感謝您的幫助

有幾種方法可以解決這個問題,我能想到的一種方法是直接使用比較運算符。

示例( 來源:numpy 文檔

a = np.array([[0, 0, 0], [0.3, 0.41, 0.47], [0.21, 0.23, 0.97]])
a > 0
array([[False, False, False],
       [ True,  True,  True],
       [ True,  True,  True]])

這讓您了解哪些元素是非零的

另一種方法是使用內置方法np.nonzero

>>> a
array([[0, 0, 0],
       [0.3, 0.41, 0.47],
       [0.21, 0.23, None]], dtype=object)
>>> a[np.nonzero(a)]
array([0.3, 0.41, 0.47, 0.21, 0.23], dtype=object)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM