来自Python的列表背景和C ++ / Java等编程语言的背景,其中一个用于使用a[i][j]
方法提取元素的符号。但在NumPy
中,通常会a[i,j]
。这两个都会返回相同的结果。
两者之间的根本区别是什么?应该首选哪些?
答案 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
出于这个原因,我更喜欢后者。