Performance numpy count同一组中点数的成本总和

Performance numpy count同一组中点数的成本总和,performance,numpy,Performance,Numpy,我有一个向量,其中索引I处的每个点都属于群向量[I] vector=np.array([[1,1,4,1,4,3,1]]) 我也要为每一点付出代价: cost=np.array([[10,10,40,1,4,1,2]]) 我想以一种高效的方式计算每一组的成本总和,而不是循环到任何一点 对于本例,除了获取输出外,我还: [[23,23,44,23,44,1,23]] 对于第1组,其10+10+1+2=23 对于第2组,其40+4=44 对于第3组,其仅为1仅为: counts = np.bi

我有一个向量,其中索引I处的每个点都属于群向量[I]

vector=np.array([[1,1,4,1,4,3,1]])
我也要为每一点付出代价:

cost=np.array([[10,10,40,1,4,1,2]])
我想以一种高效的方式计算每一组的成本总和,而不是循环到任何一点

对于本例,除了获取输出外,我还:

[[23,23,44,23,44,1,23]]
对于第1组,其10+10+1+2=23
对于第2组,其40+4=44
对于第3组,其仅为1

仅为:

counts = np.bincount(vector, weights=cost)
output = counts[vector]

这很酷,但我不能将[[10,10,40,1,4,1,2]]作为输入,而只能使用[10,10,40,1,4,1,2],因此我必须使用reshape@member555您可以使用
cost.ravel()
vector.ravel()
@member555哦,我以为bincount会像许多Numpy函数一样使输入平坦化。但是是的,只要使用
.ravel()