Как сопоставить функцию с массивом NumPy (с примерами)


Вы можете использовать следующий базовый синтаксис для сопоставления функции с массивом NumPy:

#define function
my_function = lambda x: x\*5

#map function to every element in NumPy array
my_function(my_array)

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: Функция карты над одномерным массивом NumPy

В следующем коде показано, как сопоставить функцию с массивом NumPy, который умножает каждое значение на 2, а затем добавляет 5:

import numpy as np

#create NumPy array
data = np.array([1, 3, 4, 4, 7, 8, 13, 15])

#define function
my_function = lambda x: x\*2+5

#apply function to NumPy array
my_function(data)

array([ 7, 11, 13, 13, 19, 21, 31, 35])

Вот как было рассчитано каждое значение в новом массиве:

  • Первое значение: 1*2+5 = 7
  • Второе значение: 3*2+5 = 11
  • Третье значение: 4*2+5 = 13

И так далее.

Пример 2: Функция Map над многомерным массивом NumPy

В следующем коде показано, как сопоставить функцию с многомерным массивом NumPy, который умножает каждое значение на 2, а затем добавляет 5:

import numpy as np

#create NumPy array
data = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

#view NumPy array
print(data)

[[1 2 3 4]
 [5 6 7 8]]

#define function
my_function = lambda x: x\*2+5

#apply function to NumPy array
my_function(data)

array([[ 7, 9, 11, 13],
 [15, 17, 19, 21]])

Обратите внимание, что этот синтаксис работал с многомерным массивом точно так же, как и с одномерным массивом.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в NumPy:

Как добавить столбец в массив NumPy
Как преобразовать массив NumPy в список в Python
Как экспортировать массив NumPy в файл CSV

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.