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

Nip*_*tra 14 python numpy list

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

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

NPE*_*NPE 15

主要区别在于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
Run Code Online (Sandbox Code Playgroud)

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