Операции с массивами NumPy

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

Введение

NumPy - это библиотека Python, используемая для численного вычисления. Она предназначена для работы с массивами и матрицами, что делает ее мощным инструментом для научных вычислений. В этом лабе вы изучите следующие три темы, связанные с операциями NumPy массивов:

  1. Математические операции
  2. Передача (Broadcasting)
  3. Универсальные функции
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 98%. Он получил 97% положительных отзывов от учащихся.

Математические операции

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.