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

时间:2013-05-12 07:07:06

标签: python list numpy

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

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

1 个答案:

答案 0 :(得分:14)

主要区别在于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

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