假设我有array
名为my array
my_array= [[1,2],[1,3],[2,3]]
我想添加从1开始的每个子列表中的所有第二个元素,以便我的输出为5
同样使用NumPy不是一个选择......
有谁知道怎么做?
答案 0 :(得分:5)
您可以使用条件列表推导。
my_array=[[1,2],[1,3],[2,3]]
my_sum=sum(v[1] for v in my_array if v[0]==1)
print(my_sum)
输出:
5
答案 1 :(得分:3)
使用带有过滤器的列表推导来选择项目,然后将它们相加:
result = sum([b for a,b in my_array if a == 1])
答案 2 :(得分:1)
您可以遍历数组并检查第一个元素是否为1
,然后将第二个元素添加到变量中:
result = 0
for i in range(0, len(my_array)):
elem = my_array[i]
if elem[0] == 1:
result += elem[1]
答案 3 :(得分:0)
my_array= [[1,2],[1,3],[2,3]]
sum = 0
for x in my_array:
if x[0] == 1:
sum+=x[1]
print(sum)
答案 4 :(得分:0)
>>> import numpy as np
>>> my_array = np.array([[1,2],[1,3],[2,3]])
>>>
>>> np.sum(my_array[:,1][my_array[:,0] == 1])
5
答案 5 :(得分:0)
对于大数据,从一开始就使用numpy进行转换甚至更好可能会更快。这里,如果要添加to_sum中的相应元素,则to_select为真:
ReceiverRestrictedContext