0
我有两个np.matrixes,其中一个我试图规范化。我知道,一般来说,列表推导比循环更快,所以我试图将我的double for循环转换为列表表达式。np矩阵的列表理解
# normalize the rows and columns of A by B
for i in range(1,q+1):
for j in range(1,q+1):
A[i-1,j-1] = A[i-1,j-1]/(B[i-1]/B[j-1])
这是我迄今为止得到:
A = np.asarray([A/(B[i-1]/B[j-1]) for i, j in zip(range(1,q+1), range(1,q+1))])
,但我想我采取错误的做法,因为我没有看到任何显著的时间差。
任何帮助,将不胜感激。
为什么你认为列表解析通常比循环更快?鉴于你在理解中实际使用了for循环。 – ForceBru
除非你真的没有更好的选择,否则你不应该使用list comprehensions *或*'for'循环与NumPy数组。 – user2357112
思想列表理解通常比for循环快一点点,因为它不必在每次迭代中查找列表及其附加方法。 – Callahan