numpy.fromfunction
numpy.fromfunction(function, shape, *, dtype=<class 'float'>, **kwargs) [source]
通过在每个坐标上执行一个函数来构造一个数组。
因此,结果数组在坐标(x, y, z)
处有一个值fn(x, y, z)
。
参数: | function :callable 该函数使用N个参数调用,其中N是的秩 shape。 每个参数代表沿特定轴变化的数组坐标。 例如,如果shape 为(2, 2), 则参数将为 和 shape : 输出数组的形状,它也确定传递给 dtype: 传递给 |
返回值: | fromfunction : 调用函数的结果直接传回。因此,的形状fromfunction完全由功能决定 。 如果函数返回标量值,则其形状 fromfunction将与shape参数不匹配。 |
Notes
关键字dtype传递给function
。
例子
1) 创建一个对角线为 True 的布尔数组
使用一个 lambda 函数来生成一个 3x3
的布尔数组,其中元素值为 True
的位置是在对角线上(即 i == j
)。
import numpy as np # 使用 fromfunction 创建一个对角线为 True 的布尔数组 array1 = np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int) print(array1)
2)创建一个元素为其索引之和的数组
使用一个 lambda 函数来生成一个 3x3 的数组,其中每个元素的值为其索引的和(即 i + j
)。
import numpy as np # 使用 fromfunction 创建一个元素为其索引之和的数组 array2 = np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) print(array2)