У вас два массива: a = np.array([1, 2, 3]) и b = np.array([[1, 2, 3]]). Что верно про их размерность и форму?
AУ массива
a форма (1, 3), у массива b форма (3,): внешние скобки на размерность не влияютBОба массива
a и b 2D: наличие хотя бы одной пары [] в литерале даёт две оси сразуCОба массива
a и b 1D: все их элементы остаются обычными числовыми значениями скаляра типаDУ
a ndim равен 1 и shape равен (3,), у b ndim равен 2 и shape равен (1, 3)Правильный ответ. Один уровень скобок даёт 1D массив, два уровня — 2D массив с одной строкой.
Разбор
Выражение a = np.array([1, 2, 3]) создаёт 1D массив из 3 элементов: a.ndim равен 1, а a.shape — (3,). Выражение b = np.array([[1, 2, 3]]) создаёт 2D массив с одной строкой и тремя столбцами: b.ndim равен 2, b.shape — (1, 3). Это важно для broadcasting и индексации: одинаковые «на вид» данные ведут себя по-разному в операциях.
Проверь себя · 1/3разбор после ответа
Пусть
arr = np.array([10, 20, 30, 40]). Чему равен срез arr[1:3]?Ещё вопросы по теме «NumPy: основы»
- После `import numpy as np` вы сравниваете операции над списком Python `list` и массивом `np.ndarray`. Что верно для `lst * 2` и `arr * 2`, где `lst = [1, 2, 3]`, а `arr = np.array([1, 2, 3])`?
- Какое значение вернёт `arr.shape`, если `arr = np.array([[1, 2, 3], [4, 5, 6]])`?
- Что будет результатом выражения `arr + 10`, если `arr = np.array([1, 2, 3])`?
- Пусть `x = np.array([[1, 2], [3, 4]])`. Чему равен результат `np.sum(x, axis=0)`?
- Вы считаете метрику по большому массиву чисел и выбираете NumPy вместо Python `list`. Почему операции вроде `arr * 1.1` на `ndarray` обычно быстрее, чем цикл `for` по `list`?
- Все вопросы по «NumPy: основы» →