Это кажется простым вопросом, но я не смог найти хорошего ответа.
Я ищу питонский способ проверить, содержит ли двумерный массив с нулевыми данными заданную строку.Например:
myarray = numpy.array([[0,1],
[2,3],
[4,5]])
myrow1 = numpy.array([2,3])
myrow2 = numpy.array([2,5])
myrow3 = numpy.array([0,3])
myrow4 = numpy.array([6,7])
Учитывая myarray, я хочу написать функцию, которая возвращает True, если я проверяю myrow1, и False, если я проверяю myrow2, myrow3 и myrow4.
Я пытался "в ключевом слове ", и это не дало мне ожидаемых результатов:
>>> myrow1 in myarray
True
>>> myrow2 in myarray
True
>>> myrow3 in myarray
True
>>> myrow4 in myarray
False
Кажется, что проверяется только один или несколько элементов, не совпадают ли все элементы.Может кто-нибудь объяснить, почему это происходит?
Я могу сделать этот тестовый элемент за элементом, что-то вроде этого:
def test_for_row(array,row):
numpy.any(numpy.logical_and(array[:,0]==row[0],array[:,1]==row[1]))
Но это не очень питонно и становится проблематичным, если в строках много элементов,Должно быть более элегантное решение.Любая помощь приветствуется!