Что такое основной ряд и основной столбец в numy? - PullRequest
2 голосов
/ 17 октября 2019

Я новичок в numpy, и я читал numpy, но я не могу понять основные строки и основные столбцы в numpy. Может ли кто-нибудь объяснить с помощью примера самым простым способом? Любой ответ будет оценен спасибо

1 Ответ

2 голосов
/ 17 октября 2019

Рассмотрим массив, подобный следующему:

>>> A = np.random.randint(low=1, high=9, size=(3,3))
>>> A   
array([[8, 7, 2],
       [4, 2, 5],
       [8, 6, 7]])

Использование Major-row означает, что значения будут храниться в памяти следующим образом (при условии 64-разрядных целых чисел):

Memory address  0x00  0x08  0x10  0x18  0x20  0x28  0x30  0x38  0x40
Value              8     7     2     4     2     5     8     6     7

Принимая во внимание, что основной столбец хранилище будет выглядеть следующим образом:

Memory address  0x00  0x08  0x10  0x18  0x20  0x28  0x30  0x38  0x40
Value              8     4     8     7     2     6     2     5     7

По умолчанию Numpy хранит в главном порядке строк.

>>> A[0].__array_interface__['data']
(14502656, False)
>>> A[1].__array_interface__['data']
(14502680, False)  # 14502680 - 14502656 == 24

Вы можете видеть, что вторая строка данных находится на расстоянии 24 байта (три int64) от первой. Транспонированный массив предлагает просмотр исходных данных массива, а не их копию, которая с шагом выглядит так, как если бы она отображалась в главном столбце (фактические данные в памяти остаются в том же порядке):

>>> A.T[0].__array_interface__['data']
(14502656, False)
>>> A.T[1].__array_interface__['data']
(14502664, False)  # 14502664 - 14502656 == 8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...