我有两个numpy数组,一个包含值,另一个包含每个值的类别。
我的问题是,我将运行同样的求和过程几十亿次,每微秒都很重要。
我的当前实现如下。
生成的 catsums 应该是:
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])
我有另一个包含唯一类别的数组,我想对这些类别进行求和。
categories=np.array([101,102,201,202,301,302])
我的问题是,我将运行同样的求和过程几十亿次,每微秒都很重要。
我的当前实现如下。
catsums=[]
for x in categories:
catsums.append(np.sum(values[np.where(valcats==x)]))
生成的 catsums 应该是:
[1, 14, 7, 8, 12, 13]
我当前的运行时间大约为5微秒。我对Python还比较新,希望能够通过将前两个数组合并或使用lambda等更快的解决方案。
谢谢阅读!