Аналогичный вопрос, который показывает, как сделать столбец или строка : удалить ноль строк 2-D массив Numpy
Я ищу один вкладыш , который может удалять строки и столбцы из массива, который имеет только False
или 0
. В настоящее время я могу сделать это в две строки следующим образом, и моя попытка сделать это будет в одной строке.
Рассмотрим массив:
arr = array([[[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False],
[False, False, True, True, True, False, False],
[False, False, True, True, True, False, False],
[False, False, True, True, True, False, False],
[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False]]])
Удалить строки
arr_2 = arr[~np.all(arr == False, axis=1), :]
arr_2
array([[False, False, True, True, True, False, False],
[False, False, True, True, True, False, False],
[False, False, True, True, True, False, False]])
Удалить столбцы
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])
Очевидно, что это не желаемый результат