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
по этой причине, я бы предпочел последнее.