Надеюсь, я правильно понял ваш вопрос.Допустим, у вас есть массив a
a = array(range(7)*3).reshape(7, 3)
print a
array([[0, 1, 2],
[3, 4, 5],
[6, 0, 1],
[2, 3, 4],
[5, 6, 0],
[1, 2, 3],
[4, 5, 6]])
, и вы хотите извлечь все строки, где первая запись - 2
.Это можно сделать так:
print a[a[:,0] == 2]
array([[2, 3, 4]])
a[:,0]
обозначает первый столбец массива, == 2
возвращает логический массив, отмечающий совпадающие записи, и затем мы используем расширенное индексирование для извлечения соответствующих строк.
Конечно, NumPy нужно перебирать все записи, но это будет намного быстрее, чем в Python.