numpy.fromfunction

numpy.fromfunction(function, shape, **kwargs)

Функция numpy.fromfunction() создает массив, выполняя функцию над каждым элементом.

Параметры:
function - подлежащая выполнению функция
Функция может содержать N параметров, при этом количество параметров определяет размерность выходного массива. Каждый из N параметров перебирает элементы вдоль определенной оси. Например, если мы используем два параметра, и указываем размеры массива (3, 3), то один из параметров пробегал бы значения массива array([[0,0,0],[1,1,1],[2,2,2]]), а другой значения массива array([[0,1,2],[0,1,2],[0,1,2],])
shape - целое число, список или кортеж целых чисел
Задает размеры необходимого массива.
dtype - тип данных NumPy (необязательный)
Определяет тип данных выходного массива.
Возвращает:
результат - массив NumPy
Массив все элементы которого представляют собой результат работы указанной функции.
Смотрите так же: frombuffer, fromfile, fromstring, fromiter

Примеры

>>> import numpy as np
>>> 
>>> np.fromfunction(lambda x, y: x == y, (4,4), dtype = int)
array([[ True, False, False, False],
       [False,  True, False, False],
       [False, False,  True, False],
       [False, False, False,  True]], dtype=bool)
>>> 
>>> np.fromfunction(lambda x, y: x + 0*y, (4,4), dtype = int)
array([[0, 0, 0, 0],
       [1, 1, 1, 1],
       [2, 2, 2, 2],
       [3, 3, 3, 3]])
>>> 
>>> np.fromfunction(lambda x, y: 0*x + y, (4,4), dtype = int)
array([[0, 1, 2, 3],
       [0, 1, 2, 3],
       [0, 1, 2, 3],
       [0, 1, 2, 3]])
>>> 
>>> np.fromfunction(lambda x, y: x + y, (4,4), dtype = int)
array([[0, 1, 2, 3],
       [1, 2, 3, 4],
       [2, 3, 4, 5],
       [3, 4, 5, 6]])
>>> 
>>> np.fromfunction(lambda x, y: x**2 + y**2, (4,4), dtype = int)
array([[ 0,  1,  4,  9],
       [ 1,  2,  5, 10],
       [ 4,  5,  8, 13],
       [ 9, 10, 13, 18]])