Размер массива numpy

Подскажите пожалуйста, ответ на вопрос по фото ниже.

введите сюда описание изображения

Я не понимаю: он показывает первую цифру 2, по логике это 2 строчки, а столбцов - не пойму это сколько. Хотя, по логике, наверно, правильно что сам массив размером 1 на 2.

Где правда, объясните пожалуйста.


Ответы (1 шт):

Автор решения: CrazyElf

Чтобы была понятна разница:

import numpy as np

a1 = np.array([1, 2])
print(a1)
print(a1.shape)
print('-' * 5)

a2 = np.array([[1, 2]])
print(a2)
print(a2.shape)
print('-' * 5)

a3 = np.array([[1], [2]])
print(a3)
print(a3.shape)

assert all(a2[0] == a1)
assert all(a3[:,0] == a1)

Вывод:

[1 2]
(2,)
-----
[[1 2]]
(1, 2)
-----
[[1]
 [2]]
(2, 1)

У вас одномерный массив длины 2. Размер массива всегда возвращается в виде кортежа, даже если измерение всего одно. Кортеж в питоне описывается скобками, внутри которых должна быть хотя бы одна запятая. (2,) - кортеж из одного элемента 2.

Другие два массива, которые я привёл для сравнения - двумерные. Первый имеет одну строку и два столбца, а второй наоборот - две строки и один столбец. Форма shape у них соответствующая.

Из двумерного массива можно сделать одномерный, если извлечь нужную строку/столбец.

→ Ссылка