numpy где - как установить условие на весь столбец? - PullRequest
0 голосов
/ 27 января 2020

Как реализовать:

t=np.where(<exists at least 1 zero in the same column of t>,t,np.zeros_like(t))

способом "pythoni c"?

этот код должен установить все столбцы в ноль в t, если t имеет хотя бы 1 ноль в этот столбец

Пример:

1 1 1 1 1 1
0 1 1 1 1 1
1 1 0 1 0 1

должен превратиться в

0 1 0 1 0 1
0 1 0 1 0 1
0 1 0 1 0 1

Ответы [ 2 ]

1 голос
/ 27 января 2020

any это то, что вам нужно

~(arr == 0).any(0, keepdims=True) * arr

0 1 0 1 0 1
0 1 0 1 0 1
0 1 0 1 0 1
0 голосов
/ 28 января 2020

этот код должен устанавливать все столбцы в ноль в t, если t имеет хотя бы 1 ноль в этом столбце

Самый простой способ выполнить эту конкретную задачу:

t * t.min(0)

Более общий способ сделать это (если у вас есть массив с другими значениями и условие: если в столбце есть хотя бы одно вхождение some_value, то установите для этого столбца значение some_value).

cond = (arr == some_value).any(0)
arr[:, cond] = some_value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...