2013-05-12 8 views
10

Pythonのリストの背景とC++/Javaのようなプログラミング言語のものから、a[i][j]アプローチを使用して要素を抽出する表記に使用されます。しかし、NumPyでは、通常はa[i,j]です。両方とも同じ結果を返します。Numpy:a [i] [j]とa [i、j]の違い

両者の根本的な違いは何ですか?どちらが優先されるべきですか?

答えて

11

主な違いは、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 

このため、私は後者を好みます。

関連する問題