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))]