Python 从numpy数组中删除行和列
我有这样一个数组:Python 从numpy数组中删除行和列,python,numpy,Python,Numpy,我有这样一个数组: 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,
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)
谢谢你的解释!