Другие показали хорошие способы решения этой проблемы с помощью встроенных Python, но вы можете использовать numpy
, если то, что вы на самом деле хотите, это модное индексирование.
Например:
import numpy as np
lst = np.array([[1,6],[1,4],[3,4],[1,2]])
print(lst)
#array([[1, 6],
# [1, 4],
# [3, 4],
# [1, 2]])
В этом случае lst
- это numpy.ndarray
с формой (4,2)
(4 строки и 2 столбца).Если вы хотите посчитать количество строк, где первый столбец (индекс 0) равен X
, вы можете написать:
X = 1
print((lst[:,0] == X).sum())
#3
Первая часть lst[:,0]
означает захват всех строк и толькопервый индекс.
print(lst[:,0])
#[1 1 3 1]
Затем вы проверяете, какой из них равен X
:
print(lst[:,0]==X)
#[ True True False True]
Наконец, суммируйте результирующий массив, чтобы получить количество.(Существует неявное преобразование от bool
до int
для суммы.)