numpy.ma.fromfunction#

ma.fromfunction(function, shape, **dtype) = <numpy.ma.core._convert2ma object>#

通过在每个坐标上执行一个函数来构造一个数组.

因此,生成的数组在坐标 (x, y, z) 处有一个值 fn(x, y, z).

参数:
functioncallable

该函数使用 N 个参数调用,其中 N 是 shape 的秩.每个参数表示沿着特定轴变化的数组坐标.例如,如果 shape(2, 2),那么参数将是 array([[0, 0], [1, 1]])array([[0, 1], [0, 1]])

shape(N,) 的 ints 元组

输出数组的形状,这也决定了传递给 function 的坐标数组的形状.

dtype数据类型, 可选

传递给 function 的坐标数组的数据类型.默认情况下,`dtype` 是浮点型.

likearray_like, 可选

引用对象以允许创建不是 NumPy 数组的数组.如果作为 like 传递的类数组对象支持 __array_function__ 协议,结果将由它定义.在这种情况下,它确保创建一个与此参数传递的对象兼容的数组对象.

在 1.20.0 版本加入.

返回:
fromfunction: MaskedArray

function 的调用结果直接返回.因此,`fromfunction` 的形状完全由 function 决定.如果 function 返回一个标量值,`fromfunction` 的形状将不匹配 shape 参数.

参见

indices, meshgrid

备注

除了 dtypelike 之外的关键字被传递给 function.

示例

>>> import numpy as np
>>> np.fromfunction(lambda i, j: i, (2, 2), dtype=float)
array([[0., 0.],
       [1., 1.]])
>>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float)
array([[0., 1.],
       [0., 1.]])
>>> np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int)
array([[ True, False, False],
       [False,  True, False],
       [False, False,  True]])
>>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)
array([[0, 1, 2],
       [1, 2, 3],
       [2, 3, 4]])