У меня есть двумерный массив, и я хочу выбрать строки, которые имеют определенное значение в данном столбце.Это достаточно просто сделать с одним или несколькими числами, но я не могу сделать это для списка.Код ниже, с тем, что я получил, чтобы работать, и моя попытка использовать список:
matrix = np.ndarray([4, 5])
matrix[0,:] = range(1,6)
matrix[1,:] = range(6,11)
matrix[2,:] = range(11,16)
matrix[3,:] = range(16,21)
li=[9,19]
matrix2=matrix[matrix[:,3]==9] # this gives me one of the requirements.
print(matrix2)
matrix3=matrix[(matrix[:,3]==9) | (matrix[:,3]==19)] # Multiple requirements explicitly laid out works.
print(matrix3)
matrix4=matrix[matrix[:,3] in li] # multiple requirements in list form do not work.
print(matrix4)
Я также рассмотрел использование команды np.where (), как предложено в Условноиндексирование с помощью Numpy ndarray , но это не помогает мне, и, похоже, не меняет результаты, когда оно используется вместо среза, который я использовал выше.
Я получаю конкретное сообщение об ошибке::
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Но я не понимаю, как мне могут помочь команды a.any () или a.all ().