问题 Numpy:a [i] [j]和[i,j]之间的差异


来自Python的列表背景和C ++ / Java等编程语言的背景,一个用于使用Python提取元素的符号 a[i][j] 做法。但在 NumPy一个人通常会这样做 a[i,j]。这两个都会返回相同的结果。

这两者之间的根本区别是什么?应该首选哪些?


12503
2018-05-12 07:07


起源



答案:


主要区别在于 a[i][j] 首先创建一个视图 a[i] 然后索引到该视图。另一方面, a[i,j] 索引直接进入 a,加快速度:

In [9]: a = np.random.rand(1000,1000)

In [10]: %timeit a[123][456]
1000000 loops, best of 3: 586 ns per loop

In [11]: %timeit a[123,456]
1000000 loops, best of 3: 234 ns per loop

出于这个原因,我更喜欢后者。


12
2018-05-12 07:15