Функция fromfunction
Функция fromfunction создает массив NumPy
путем применения пользовательской функции к координатам
индексов каждого элемента. Первым параметром функция
принимает вызываемый объект (функцию), вторым -
кортеж с размерами массива, а третьим, опциональным,
можно задать тип данных элементов.
Синтаксис
np.fromfunction(function, shape, [dtype])
Пример
Давайте создадим одномерный массив, где каждый элемент равен квадрату своего индекса:
import numpy as np
def square_index(i):
return i ** 2
arr = np.fromfunction(square_index, (5,))
print(arr)
Результат выполнения кода:
[ 0 1 4 9 16]
Пример
Создадим двумерный массив, где каждый элемент вычисляется как произведение индекса строки и индекса столбца:
import numpy as np
def multiply_indices(i, j):
return i * j
arr = np.fromfunction(multiply_indices, (3, 4))
print(arr)
Результат выполнения кода:
[[0 0 0 0]
[0 1 2 3]
[0 2 4 6]]
Пример
Используем лямбда-функцию для создания трехмерного массива размером 2x2x2, где значение равно сумме индексов по всем осям:
import numpy as np
arr = np.fromfunction(lambda x, y, z: x + y + z, (2, 2, 2))
print(arr)
Результат выполнения кода:
[[[0 1]
[1 2]]
[[1 2]
[2 3]]]
Пример
Укажем тип данных float для создания массива вещественных чисел. В качестве функции используем синус от индекса:
import numpy as np
arr = np.fromfunction(lambda i: np.sin(i), (5,), dtype=float)
print(arr)
Результат выполнения кода:
[ 0. 0.84147098 0.90929743 0.14112001 -0.7568025 ]
Смотрите также
-
функцию
array,
которая создает массив из списка, кортежа или другого массива -
функцию
fromiter,
которая создает массив из итерируемого объекта -
функцию
fromstring,
которая создает массив из строки с данными -
функцию
meshgrid,
которая создает координатные сетки для векторных вычислений