Numpy fromfunction() 函数
Numpy fromfunction() 函数用于通过对每个坐标执行函数来构造数组。结果数组在坐标 (x, y, z) 处具有值 fn(x, y, z),此函数可用于根据应用于数组索引的数学函数生成数组。
语法
以下是 Numpy fromfunction() 函数的语法 -
numpy.fromfunction(function, shape,dtype=float, **kwargs)
参数
以下是 Numpy fromfunction() 函数的参数 -
- function - 一个接受 N 个参数的函数,其中 N 是数组的秩(维数)。它应用于数组中的每个坐标。
- shape - 一个整数元组,指定输出数组的形状。此元组的长度决定了数组的维数。
- dtype(可选)- 返回数组的数据类型。默认情况下,它设置为 float,但可以指定为任何 NumPy 数据类型,例如 int、float64 等。
- kwargs(可选)- 这是传递给函数的附加关键字参数。
返回值
此函数返回一个 NumPy 数组,其中每个元素都是将给定函数应用于相应索引值的结果。
示例
以下是使用 Numpy fromfunction() 函数生成二维数组的基本示例,其中每个元素是其索引之和 -
import numpy as np # 定义一个函数应用于每个坐标 def func(x, y): return x + y # 使用 fromfunction 创建一个 4x4 数组 array = np.fromfunction(func, (4, 4), dtype=int) print("生成的 Numpy 数组:") print(array)
输出
以下是上述代码的输出 -
生成的 Numpy 数组: [[0 1 2 3] [1 2 3 4] [2 3 4 5] [3 4 5 6]]
示例 - 应用数学函数
在下面的示例中,我们使用 numpy.fromfunction 生成了一个 3x3 数组,该数组计算索引的乘积 -
import numpy as np # 定义一个函数来计算索引的乘积 def product(x, y): return x * y # 使用 fromfunction 创建一个 3x3 数组 array = np.fromfunction(product, (3, 3), dtype=int) print("索引数组的乘积:") print(array)
输出
以下是上述代码的输出 -
索引数组的乘积: [[0 0 0] [0 1 2] [0 2 4]]
示例 - 高维数组
这里,我们使用 numpy.fromfunction() 生成了一个多维数组,其中包含三个索引函数的 sums -
import numpy as np # 定义一个函数,对三个索引函数求和指数 def func_3d(x, y, z): return x + y + z # 使用 fromfunction 创建一个 3x3x3 数组 array_3d = np.fromfunction(func_3d, (3, 3, 3), dtype=int) print("生成的 3D 数组:") print(array_3d)
输出
以下是上述代码的输出 -
生成的 3D 数组: [[[0 1 2] [1 2 3] [2 3 4]] [[1 2 3] [2 3 4] [3 4 5]] [[2 3 4] [3 4 5] [4 5 6]]]
示例 - 生成复杂数组
我们可以使用numpy.fromfunction() 根据更复杂的数学函数生成数组。下面是一个基于正弦函数生成数组的示例 -
import numpy as np # 定义一个应用于索引的正弦函数 def sine_func(x, y): return np.sin(x) + np.cos(y) # 使用 fromfunction 创建一个 4x4 数组 array = np.fromfunction(sine_func, (4, 4)) print("生成的正弦和余弦数组:") print(array)
输出
以下是上述代码的输出 -
生成的正弦和余弦数组: [[1. 0.54030231 0. -0.41614684] [1.84147098 1.38177329 0.84147098 0.42532415] [1.90929743 1.44959973 0.90929743 0.4931506 ] [1.14112001 0.68142231 0.14112001 -0.27502696]]
numpy_array_creation_routines.html