После import numpy as np вы сравниваете операции над Python list и NumPy ndarray. Что верно для lst * 2 и arr * 2, где lst = [1, 2, 3], а arr = np.array([1, 2, 3])?
A
lst * 2 повторит элементы списка два раза, а arr * 2 умножит каждый элемент массива на 2.BОбе операции умножат элементы поэлементно.
CОбе операции повторят значения два раза (как склейка).
DОбе операции вызовут ошибку типов.
Правильный ответ. У
list оператор * повторяет список, а у ndarray он выполняет поэлементную арифметику.Разбор
В Python list — контейнер, и выражение lst * 2 означает «повторить элементы списка». NumPy ndarray предназначен для численных операций, поэтому arr * 2 — это поэлементное умножение (векторизация). Это одно из ключевых отличий list vs ndarray и частая причина, почему аналитики выбирают NumPy для массивов чисел.
Проверь себя · 1/3разбор после ответа
Пусть
m = np.array([[1, 2, 3], [4, 5, 6]]). Чему равен np.mean(m, axis=1)?Ещё вопросы по теме «NumPy: основы»
- Какое значение вернёт `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`?
- Что вернёт `arr.shape`, если `arr = np.arange(6).reshape(2, 3)`?
- Все вопросы по «NumPy: основы» →