获得二维数组的一列的计数



我有一个2d数组数据。并希望每次第j次迭代为1时获得一个计数。其中i =行,j =列。如果不使用for循环,我该怎么做呢?

概念上是这样的:

for r in range(row):
    if(data[r][j] == 1)
        amount += 1

您可以这样做:

import numpy as np
a = np.array([[0, 1], [1, 1]])
j = 1
np.sum(a[:, j] == 1)

的结果是2,而np.sum(a[:, 0] == 1)会给出1

如果您想在多个数组上使用条件,则可以使用np.logical_and(condition1, condition2):

np.sum(np.logical_and(a[:, 0] == 1, b[:, 0] == 2))

我对这个问题的解释是,您希望遍历行和列,并为数据中的每个条目添加1到amount。这可以在不循环的情况下完成,如下所示。

import numpy as np
data = np.ones((6,8))
amount = data[data == 1].sum()
print amount

如果相反,您将固定一列j,并且只需要此列中的数量:

import numpy as np
j=7
data = np.ones((6,8))
amount = data[:,j][data[:,j]==1].sum()
print amount

相关内容

  • 没有找到相关文章

最新更新