我有两个numpy数组,一个包含值,一个包含每个值类别.
values=np.array([1,2,3,4,5,6,7,8,9,10])
valcats=np.array([101,301,201,201,102,302,302,202,102,301])
Run Code Online (Sandbox Code Playgroud)
我有另一个数组,其中包含我想要总结的唯一类别.
categories=np.array([101,102,201,202,301,302])
Run Code Online (Sandbox Code Playgroud)
我的问题是,我将运行几十亿次相同的求和过程,每微秒都很重要.
我目前的实施如下.
catsums=[]
for x in categories:
catsums.append(np.sum(values[np.where(valcats==x)]))
Run Code Online (Sandbox Code Playgroud)
由此产生的catums应该是:
[1, 14, 7, 8, 12, 13]
Run Code Online (Sandbox Code Playgroud)
我目前的运行时间约为5μs.我对Python仍然有点新意,并希望通过潜在地结合前两个数组或lamdba或者我甚至不知道的很酷的东西找到一个快速的解决方案.
谢谢阅读!