我想知道什么是最快的方法,给定一个shape(n,m)numpy数组和一个shape(p)numpy数组描述一个0到n的分区(例如,n=6的一个这样的分区是:[0,2,4],这意味着索引被划分为(0,1),(2,3),(4,5)),返回一个shape(p,m) 与每个分区对应的行的总和。你知道吗
例如
[[0,1,1,1],
[2,0,1,1],
[0,0,0,1],
[5,1,0,0]]
给定分区[0,1]
应该返回
[[0,1,1,1],
[7,1,1,2]]
我已经有了一个解决方案,就是构造矩阵
[[1,0,0,0],
[0,1,1,1]]
把初始矩阵乘以这个,得到想要的矩阵,我认为应该很快,但是我认为可能会有一些更快的东西,包括类似的东西减量(https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.reduceat.html)使用分区数组。有什么帮助吗?你知道吗
等等。。。我刚刚阅读了reduceat文档,您可以直接执行np.add.reduceat(matrix, partition, axis=0)
。我记得我以为你做不到。我想这是因为对于我的应用程序,我需要对稀疏矩阵做这个。那么,当输入的2d numpy数组是稀疏格式时,有人能建议如何执行此操作吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐