我正在尝试运行类似以下的内容:
np.bincount(array1, weights = array2, minlength=7)
其中array1
和array2
都是形状为(m,n)的二维numpy数组。我的目标是使用数组1和数组2的每一行分别运行n次np.bincount()
。
我尝试使用np.apply_along_axis(),但据我所知,这仅允许在数组1的每一行上运行该函数,而没有使用数组2的每一行作为np.bincount
的参数。我希望能找到一种使用numpy函数而不是迭代来干净地完成此操作的方法,因为这是一个关键性能函数,但到目前为止我无法找到其他方法。
例如,给出这些数组:
array1 = [[1,2,3],[4,5,6]]
array2 = [[7,8,9],[10,11,12]]
我想要计算:
[np.bincounts([1,2,3], weights = [7,8,9],minlength=7), np.bincounts([4,5,6], weights = [10,11,12], minlength=7)]
apply_along...
不是一个性能工具,即使在它工作的情况下也不是。它不会编译函数并在c
中执行循环。 - hpauljbincount
通过在1d中工作来提高速度。 - hpaulj