Форма 1 массива NumPy - PullRequest
       1

Форма 1 массива NumPy

0 голосов
/ 21 марта 2019

Рассмотрим

x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
v = np.array([1, 0, 1])

По мнению Python, x имеет форму (4, 3) и v shape (3,). Почему Python не видит v как имеющий форму (, 3). Кроме того, почему v и v.T имеют одинаковую форму (3,). ИМХО, я думаю, что если v имеет форму (3,), то v.T должно иметь форму (, 3)?

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Как вы знаете, numy массивы n-мерны.Форма говорит размеры в порядке.Если это 1-D, вы увидите только 1-е измерение, 2-D только 2 измерения и так далее.

Здесь x - это двумерный массив, а v - это одномерный массив (он же вектор).Вот почему, когда вы формируете фигуру на v, вы видите (3,), что означает, что он имеет только одно измерение, тогда как x.shape дает (4,3).Когда вы транспонируете v, то это также одномерный массив.Чтобы лучше это понять, попробуйте другой пример.Создайте трехмерный массив.

z=np.ones((5,6,7))
z.shape
print (z)
1 голос
/ 21 марта 2019

(3,) не означает, что 3 является первым.Это просто способ написания одноэлементного кортежа на языке Python.Если бы фигура была списком, это было бы [3].

(, 3) - недопустимый Python.Синтаксис для 1-элементного кортежа: (element,).

. Причина, по которой это не может быть просто (3), заключается в том, что Python просто рассматривает скобки как конструкцию группировки, то есть (3) интерпретируется как 3, целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...