【发布时间】:2016-11-25 02:49:12
【问题描述】:
给定一个 2D M x N NumPy 数组和一个旋转距离列表,我想在列表中的距离上旋转所有 M 行。这是我目前拥有的:
import numpy as np
M = 6
N = 8
dists = [2,0,2,1,4,2] # for example
matrix = np.random.randint(0,2,(M,N))
for i in range(M):
matrix[i] = np.roll(matrix[i], -dists[i])
最后两行实际上是一个内部循环的一部分,它被执行了数十万次,它正在成为我通过 cProfile 衡量的性能的瓶颈。例如,是否有可能避免 for 循环并更有效地做到这一点?
【问题讨论】:
标签: python python-3.x numpy optimization