Numpy: разница между a[i][j] и A[i, j]

исходя из фона списков в Python и языков программирования, таких как C++/Java, используется для обозначения извлечения элементов с помощью a[i][j] подход. Но в NumPy, обычно делают a[i,j]. Оба они возвращают одинаковый результат.

в чем принципиальное различие между ними и что следует предпочесть?

1 ответов


главное отличие в том, что a[i][j] сначала создает представление на a[i] а затем индексирует в это представление. С другой стороны,--3--> индексы непосредственно в 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

по этой причине, я бы предпочел последнее.