簡體   English   中英

從numpy數組中刪除行和列

[英]remove rows and columns from numpy array

我有一個像這樣的數組:

a = np.array([[1,2,3,4,5],
[6,0,8,9,10],
[11,12,13,14,15],
[16,0,0,19,20]])

而且我想刪除具有0值的列和行,因此新的a應該像這樣:

array([[1,4,5],
[11,14,15]])

如何使用索引解決這個問題?

>>> a[(a != 0).all(axis=1)][:,(a != 0).all(axis=0)]
array([[ 1,  4,  5],
       [11, 14, 15]])

找到的元素a是非零是很容易的:

>>> (a != 0)
array([[ True,  True,  True,  True,  True],
       [ True, False,  True,  True,  True],
       [ True,  True,  True,  True,  True],
       [ True, False, False,  True,  True]], dtype=bool)

然后,您可以使用all (指定軸)來查找要保留的行:

>>> (a != 0).all(axis=1)
array([ True, False,  True, False], dtype=bool)

對於列也是如此:

>>> (a != 0).all(axis=0)
array([ True, False, False,  True,  True], dtype=bool)

暫無
暫無

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

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