Введение
NumPy - это библиотека Python, используемая для численного вычисления. Она предназначена для работы с массивами и матрицами, что делает ее мощным инструментом для научных вычислений. В этом лабе вы изучите следующие три темы, связанные с операциями NumPy массивов:
- Математические операции
- Передача (Broadcasting)
- Универсальные функции
Математические операции
NumPy предоставляет широкий спектр математических операций для массивов. Эти операции могут выполняться над одним или несколькими массивами.
Откройте Python-интерпретатор
Откройте Python-интерпретатор, введя следующую команду в терминале.
python3
Импортируйте NumPy
NumPy уже установлен, вы можете импортировать его в свой Python-код:
import numpy as np
Элементарные операции
Элементарные операции - это операции, выполняемые над каждым элементом в массиве.
Создадим два массива и выполним несколько элементарных операций:
## Создание двух массивов
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])
## Сложение двух массивов
print("Сложение двух массивов: ", arr1 + arr2)
## Вычитание двух массивов
print("Вычитание двух массивов: ", arr1 - arr2)
## Умножение двух массивов
print("Умножение двух массивов: ", arr1 * arr2)
## Деление двух массивов
print("Деление двух массивов: ", arr1 / arr2)
## Нахождение остатка от деления двух массивов
print("Модуль двух массивов: ", arr1 % arr2)
## Возведение элементов массива в степень
print("Возведение массива в степень: ", arr1 ** 2)
Результат:
Сложение двух массивов: [ 6 8 10 12]
Вычитание двух массивов: [-4 -4 -4 -4]
Умножение двух массивов: [ 5 12 21 32]
Деление двух массивов: [0.2 0.33333333 0.42857143 0.5 ]
Модуль двух массивов: [1 2 3 4]
Возведение массива в степень: [ 1 4 9 16]
Операции над массивом целиком
Операции над массивом целиком - это операции, выполняемые над целым массивом.
Создадим массив и выполним несколько операций над ним целиком:
## Создание массива
arr = np.array([1, 2, 3, 4])
## Нахождение суммы всех элементов в массиве
print("Сумма массива: ", np.sum(arr))
## Нахождение произведения всех элементов в массиве
print("Произведение массива: ", np.prod(arr))
## Нахождение минимального элемента в массиве
print("Минимальный элемент в массиве: ", np.min(arr))
## Нахождение максимального элемента в массиве
print("Максимальный элемент в массиве: ", np.max(arr))
## Нахождение среднего значения всех элементов в массиве
print("Среднее значение массива: ", np.mean(arr))
## Нахождение стандартного отклонения всех элементов в массиве
print("Стандартное отклонение массива: ", np.std(arr))
Результат:
Сумма массива: 10
Произведение массива: 24
Минимальный элемент в массиве: 1
Максимальный элемент в массиве: 4
Среднее значение массива: 2.5
Стандартное отклонение массива: 1.118033988749895
Передача (Broadcasting)
Передача (Broadcasting) - это особенность NumPy, которая позволяет выполнять элементарные операции между массивами различных форм. Передача особенно полезна при работе с массивами различных размерностей.
Создадим массив и выполним несколько операций с использованием передачи:
## Создание двух массивов различных форм
array1 = np.array([1, 2, 3])
array2 = np.array([[4, 5, 6], [7, 8, 9]])
## Передача меньшего массива к большему массиву
print("Сложение двух массивов с использованием передачи: ", array1 + array2)
print("Вычитание двух массивов с использованием передачи: ", array1 - array2)
print("Умножение двух массивов с использованием передачи: ", array1 * array2)
print("Деление двух массивов с использованием передачи: ", array1 / array2)
Результат:
Сложение двух массивов с использованием передачи: [[ 5 7 9]
[ 8 10 12]]
Вычитание двух массивов с использованием передачи: [[-3 -3 -3]
[-6 -6 -6]]
Умножение двух массивов с использованием передачи: [[ 4 10 18]
[7 16 27]]
Деление двух массивов с использованием передачи: [[0.25 0.4 0.5 ]
[0.14285714 0.25 0.33333333]]
В приведенном выше коде мы создаем два массива: array1 с формой (3,) и array2 с формой (2,3). Мы выполняем элементарные операции между array1 и array2 благодаря особенности передачи в NumPy. Менее крупный массив, array1, передается к более крупному массиву, array2, для выполнения элементарных операций. Передача позволяет выполнять операции с массивами различных форм.
Универсальные функции
Универсальные функции, или ufuncs, - это функции, которые работают с массивами по элементно. Они обеспечивают быстрые и эффективные операции с массивами.
Создадим массив и выполним несколько ufuncs:
## Создание массива
arr = np.array([1, 2, 3, 4])
## Нахождение квадратного корня от каждого элемента в массиве
print("Квадратный корень массива: ", np.sqrt(arr))
## Нахождение экспоненты каждого элемента в массиве
print("Экспонента массива: ", np.exp(arr))
## Нахождение синуса каждого элемента в массиве
print("Синус массива: ", np.sin(arr))
## Нахождение косинуса каждого элемента в массиве
print("Косинус массива: ", np.cos(arr))
## Нахождение натурального логарифма каждого элемента в массиве
print("Натуральный логарифм массива: ", np.log(arr))
Результат:
Квадратный корень массива: [1. 1.41421356 1.73205081 2. ]
Экспонента массива: [ 2.71828183 7.3890561 20.08553692 54.59815003]
Синус массива: [ 0.84147098 0.90929743 0.14112001 -0.7568025 ]
Косинус массива: [ 0.54030231 -0.41614684 -0.9899925 -0.65364362]
Натуральный логарифм массива: [0. 0.69314718 1.09861229 1.38629436]
Резюме
Поздравляем! Теперь вы узнали о операциях с массивами NumPy, включая математические операции, передачу (Broadcasting) и универсальные функции. С этими знаниями вы можете теперь выполнять широкий спектр задач по численным вычислениям с использованием Python.



