Основы передачи (broadcasting) в NumPy

NumPyNumPyBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом руководстве будет представлена концепция broadcasting в библиотеке NumPy. Broadcasting - это метод выполнения математических операций над массивами различных размерностей.

Советы по работе с ВМ

После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Сложение двух одномерных массивов одинаковой формы

import numpy as np

a = np.array([1,2,3,4])
b = np.array([2,7,8,9])
c = a+b;
print(c)

Результат будет: [ 3 9 11 13]

Попытка сложить два одномерных массива с разными формами

import numpy as np

a = np.array([4,5,6,7])
b = np.array([1,3,5,7,9,11,14])
c = a+b;

Это вызовет ошибку, потому что нельзя выполнять операции над массивами с разными формами.

Использование broadcasting для сложения двух одномерных массивов с разными формами

import numpy as np

a = np.array([4,5,6,7])
b = np.array([10])
c = a+b;

print(c)

В этом случае будет выведено [14 15 16 17], так как массив b распространяется (broadcast) по массиву a.

Передача (broadcasting) одномерного массива в двумерный массив

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])

print(a + b)

Результат будет:

[[11 22 33]
 [14 25 36]]

Одномерный массив распространяется (broadcast) по второй оси двумерного массива и добавляется к каждой колонке.

Умножение массивов различных размерностей

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])

print(a * b)

Результат будет:

[[ 4 10 18]
 [ 7 16 27]]

Одномерный массив распространяется (broadcast) по первой оси двумерного массива и умножается на каждую строку.

Резюме

В этом уроке мы рассмотрели концепцию передачи (broadcasting) в библиотеке NumPy. Передача (broadcasting) - это метод выполнения математических операций над массивами различных размерностей. Мы также показали, как работает передача (broadcasting) при сложении и умножении массивов. Следует отметить, что передача (broadcasting) может быть выполнена только в том случае, если массивы удовлетворяют определенным условиям. Передача (broadcasting) происходит только в том случае, если это не приводит к потере информации.