【发布时间】:2020-09-02 22:16:01
【问题描述】:
我有一个有效计数器的矩阵。我想根据列索引列表增加这些计数器 - 每个位置索引也对应于行增量。
这对于 for 循环来说很简单,而对于列表推导式来说就不太简单了。无论哪种情况,都涉及迭代。但是我想知道是否有任何方法可以将这个问题向量化?
最小的问题是:
counters = np.zeros((4,4))
counters
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
update_columns = [1,0,2,2]
for row, col in zip(range(len(update_columns)), update_columns):
counters[row, col] += 1
counters
array([[0., 1., 0., 0.],
[1., 0., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 1., 0.]])
【问题讨论】:
标签: python arrays numpy vectorization