#python #numpy
#python #numpy
Вопрос:
Я новичок в Python, поэтому это может быть простой вопрос. Извините, если это так!
У меня есть массив a
, и я хотел бы знать, какие значения в каждой строке a
меньше или равны значению в той же строке, что и b
.
a = np.array([[8,1,7],[4,3,9],[5,2,6]])
b = np.array([[7],[4],[6]])
Результирующий массив должен быть:
c = np.array([[False,True,True],[True,True,False],[True,True,True]])
Я пытался:
np.where((a <= b), True, False)
и
np.apply_along_axis(np.where((a <= b), True, False),1,a)
Ни один из них не работает.
Комментарии:
1. Как насчет
a <= b
?
Ответ №1:
Как насчет следующего:
s = np.where((a-b) < 0, True, False)
print(a[s])
Поможет ли это вам?
Ответ №2:
Numpy отлично подходит для выполнения поэлементной логической операции!
В этом примере простое a<=b
должно выполнить эту работу. Вы можете узнать больше об этом здесьhttps://jakevdp.github.io/PythonDataScienceHandbook/02.06-boolean-arrays-and-masks.html
Комментарии:
1. Это не работает. Он возвращает: Ошибка значения: не удалось передать операнды вместе с фигурами (14,31) (14,)
Ответ №3:
Извините, ребята,
Проблема заключалась в том, что массив b не был полностью определен: форма была (x,). Я изменил его на (x, 1), а затем все заработало.
Спасибо вам всем!
Ответ №4:
c = [lambda x, y: x <= y]
c(a,b)