获得2d阵列列的计数

时间:2016-10-03 10:42:25

标签: python arrays numpy multidimensional-array scipy

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

概念上是这样的:

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

2 个答案:

答案 0 :(得分: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 :(得分:0)

我解释这个问题,你想要迭代两个行,列和列,并为数据中的每个条目添加1到procedure TJSON_Sample.FormCreate(Sender: TObject); var LITEM, lJsonValue: TJSONValue; lJsonData: string; begin lJsonValue := TJSONObject.ParseJSONValue(TEncoding. Default.GetBytes(lJsonData), 0);//lJsonData contains the above mentioned JSON data if lJsonValue <> nil then try begin for LITEM in lJsonValue as TJSONArray do begin cmbBox_Name.Items.Add(((LITEM as TJSONObject).Get('Name') .JsonValue as TJSONString).Value); end; end; finally lJsonValue.Free; end; end; 。这可以在没有循环的情况下完成,如下所示。

amount

如果是instaead,则修复了一列import numpy as np data = np.ones((6,8)) amount = data[data == 1].sum() print amount ,只想要此列中的金额:

j