Python Numpy删除一行中只有False或0的列和行

Python Numpy删除一行中只有False或0的列和行,python,numpy,Python,Numpy,显示如何执行列或行操作的类似问题: 我正在寻找一个一行程序,它可以从只有False或0的数组中删除行和列。我现在可以用两行代码来完成这项工作,如下所示,我试图用一行代码来完成这项工作 考虑阵列: 删除行 删除列 这达到了预期的结果。我认为这应该是一条可行的路线 我的一行尝试 arr_4 = arr[~np.all(arr == False, axis=1), ~np.all(arr == False, axis=0)] arr_4 = array([ True, True, True])

显示如何执行列或行操作的类似问题

我正在寻找一个一行程序,它可以从只有
False
0
的数组中删除行和列。我现在可以用两行代码来完成这项工作,如下所示,我试图用一行代码来完成这项工作

考虑阵列:

删除行

删除列

这达到了预期的结果。我认为这应该是一条可行的路线

我的一行尝试

arr_4 = arr[~np.all(arr == False, axis=1), ~np.all(arr == False, axis=0)]
arr_4 = array([ True,  True,  True])

显然,这不是期望的结果

使用创建开放索引数组,然后索引到输入数组中-

arr[np.ix_(np.any(arr, axis=1),np.any(arr, axis=0))]

谢谢,使用
arr[np.ix_(~np.all(arr==False,axis=1),~np.all(arr==False,axis=0))可以完美工作。
我以前从未使用过
np.ix_
。阅读这份文件看起来很有用。
arr_3 = arr_2[:, ~np.all(arr_2 == False, axis=0)]
arr_3
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]])
arr_4 = arr[~np.all(arr == False, axis=1), ~np.all(arr == False, axis=0)]
arr_4 = array([ True,  True,  True])
arr[np.ix_(np.any(arr, axis=1),np.any(arr, axis=0))]