Numpy поэлементно больше (для каждого элемента в другом массиве) - PullRequest
0 голосов
/ 08 мая 2020

Я изо всех сил пытаюсь найти лучший «вопрос», поэтому, пожалуйста, не стесняйтесь предлагать другое название.

Допустим, у меня есть a=np.array([5,3,2,4]) и b=np.array([1,2]) - я хочу получить список списка (или np.arrays) со значением a>b[i], то есть его можно записать как понимание списка

[a[i]>p for p in b], которое возвращает

[np.array([True,True,True,True]), np.array([True,True,False,True])]. Так как у меня довольно большой набор данных, я надеялся, что для этого существует функция numpy, или понимание списка - лучший способ здесь?

1 Ответ

4 голосов
/ 08 мая 2020

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

>>> a[None,:] > b[:,None]
array([[ True,  True,  True,  True],
       [ True,  True, False,  True]])
...