Понимание любой функции numpy - PullRequest
0 голосов
/ 18 марта 2019

Я натолкнулся на функцию с именем any с numpy, и я не мог понять ее использование в некотором контексте, который приводится следующим образом:

if np.subtract(original.shape, duplicate.shape).any():
   # Do something
else:
   # Carry on with the usual tasks

Может ли кто-нибудь помочь мне понятьчто здесь происходит?Что проверяется?Документация гласит:

Проверяет, имеет ли какой-либо элемент массива вдоль заданной оси значение True.

Проверяется ли он на равенство?Чтобы лучше это понять, как я могу переписать any вызов?

Ответы [ 3 ]

1 голос
/ 18 марта 2019

np.any(x) проверяет, является ли какой-либо из элементов в x истинным.В вашем случае он проверяет, имеют ли массивы original и duplicate как минимум другое измерение.

Вы можете переписать это как:

res = False
for so, sd in zip(original.shape, duplicate.shape):
    if so != sd:
        res = True

if res:
    # Do something
else:
   # Carry on with the usual tasks
1 голос
/ 18 марта 2019

Проверяется на "True" Ness.

Попробуйте это:

import numpy

print(numpy.any([0, 0, 0, 0, 0]))
print(numpy.any([0, 0, 0, 0, 1]))
0 голосов
/ 18 марта 2019

Метод any проверяет, оценивается ли хотя бы один элемент в данных данных как True.

В питоне следующие вещи оцениваются False:

  • None
  • False
  • любой числовой ноль
  • пустые строки, множества, списки, словари ...
  • все, что имеет метод __len__, который возвращает 0 или метод __bool__, который возвращает False

Все остальное оценивается True.

Если данные, проверенные методом any, содержат хотя бы один элемент, который не соответствует этим требованиям, возвращается True else False

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...