Инвертирование логического массива numpy с использованием ~

Могу ли я использовать ~A для инвертирования массива логических значений вместо довольно неудобных функций np.logical_and() и np.invert()? Действительно, ~ работает нормально, но я не могу найти его ни в одном справочном руководстве по nympy, и, что более тревожно, он определенно не работает со скалярами (например, bool(~True) возвращает True !), поэтому я немного волнуюсь...


person Rolf Bartstra    schedule 05.12.2012    source источник
comment
См. stackoverflow.com/questions/13600988/   -  person NPE    schedule 05.12.2012
comment
Отвечает ли это на ваш вопрос? унарный оператор python tilde как отрицание массива numpy bool   -  person AMC    schedule 15.02.2020


Ответы (1)


короткий ответ: ДА

Ссылка:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.invert.html

Уведомление:

Вычисляет побитовое НЕ базового двоичного представления целых чисел во входных массивах. Этот ufunc реализует оператор C/Python ~.

и

bitwise_not — это псевдоним для инвертирования:

>> np.bitwise_not is np.invert
>> True
person squid    schedule 06.03.2014
comment
Однако будьте осторожны, это не сработает с массивом из 0 и 1! Он будет работать только с массивом логических значений. Если вам нужна такая гибкость, используйте вместо этого numpy.logical_not - person tvt173; 15.12.2015
comment
@ tvt173 Да, boolean not и logic not всегда разные. И вопрос, и ответ касаются boolean not. Все равно спасибо, что напомнили. - person squid; 18.12.2015