Может кто-нибудь объяснить, пожалуйста, "np.less_equal.outer (диапазон (1,18), диапазон (1,13)) - PullRequest
0 голосов
/ 18 июня 2019

Я отлаживал код, написанный кем-то, кто покинул организацию и наткнулся на строку, в которой используются функции np.less_equal.outer & np.greater_equal.outer. Я знаю, что np.outer создает декартово перекрестное произведение двух одномерных массивов и создает два массива, а np.less_equal сравнивает элемент двух массивов и возвращает true или false. Может кто-нибудь объяснить, как работает эта комбинированная форма. Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

less_equal и greater_equal - это специальные типы функций numpy, называемые ufunc s, в том смысле, что они имеют расширяемые функциональные возможности, включая accumulate, at и outer.

* 1009.* В этом случае ufunc.outer расширяет функцию, чтобы работать аналогично внешнему продукту - но хотя фактический внешний продукт будет multiply.outer, он вместо этого будет больше или меньше, чем сравнение.

Таким образом, вы получаете двумерный массив логических значений, соответствующий каждому элементу первого массива, и больше или меньше он каждого из элементов второго массива.

np.less_equal.outer(range(1,18),range(1,13))
Out[]: 
array([[ True,  True,  True, ...,  True,  True,  True],
       [False,  True,  True, ...,  True,  True,  True],
       [False, False,  True, ...,  True,  True,  True],
       ..., 
       [False, False, False, ..., False, False, False],
       [False, False, False, ..., False, False, False],
       [False, False, False, ..., False, False, False]], dtype=bool)
0 голосов
/ 18 июня 2019

вот пример:

np.less_equal([4, 2, 1], [2, 2, 2])
array([False,  True,  True])
np.greater_equal([4, 2, 1], [2, 2, 2])
array([ True, True, False], dtype=bool)

и сначала внешняя функция

np.outer(range(1,2), range(1,3))
array([[1 2 3],
       [2 4 6],
       )

надеюсь, что это поможет.

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