numpy:计算二维数组中元素满足条件的位置

max*_*mir 2 python arrays numpy count

我有一个如下所示的 numpy 数组。我需要第一个元素为 2 的行数。因此,在下面的数组中,有四行以 2 开头 - 答案是 4。在 numpy 中如何最好地实现这一点?(我不能使用 pandas,但可以使用 scipy)。

array([[1, 4, 5],
       [1, 4, 5],
       [2, 4, 5],
       [2, 4, 5],
       [2, 4, 5],
       [2, 4, 5],
       [3, 4, 5],
       [3, 4, 5],
       [3, 4, 5],
       [3, 4, 5],
       [3, 4, 5],
       [3, 4, 5]])
Run Code Online (Sandbox Code Playgroud)

Joh*_*nck 5

首先,获取第一列的所有行:

a[:,0]
Run Code Online (Sandbox Code Playgroud)

然后,找到2s:

a[:,0] == 2
Run Code Online (Sandbox Code Playgroud)

这给你一个布尔数组。然后你可以总结:

(a[:,0] == 2).sum()
Run Code Online (Sandbox Code Playgroud)