【发布时间】:2017-09-07 04:45:11
【问题描述】:
我有一些数组A,数组bins 的对应元素包含每一行的bin 分配。我想构造一个数组S,这样
S[0, :] = (A[(bins == 0), :]).sum(axis=0)
使用np.stack 和列表推导很容易做到这一点,但它似乎过于复杂且可读性差。有没有更通用的方法来对具有 bin 分配的数组切片求和(甚至应用一些通用函数)? scipy.stats.binned_statistic 是正确的,但要求 bin 分配和计算函数的值具有相同的形状(因为我使用的是切片,所以情况并非如此)。
例如,如果
A = np.array([[1., 2., 3., 4.],
[2., 3., 4., 5.],
[9., 8., 7., 6.],
[8., 7., 6., 5.]])
和
bins = np.array([0, 1, 0, 2])
那么它应该会导致
S = np.array([[10., 10., 10., 10.],
[2., 3., 4., 5. ],
[8., 7., 6., 5. ]])
【问题讨论】:
标签: python arrays numpy histogram binning