Python numpy.fromfunction函数方法的使用

numpy.fromfunction 是 NumPy 中的一个函数,可以通过对每个坐标执行一个函数来构造数组。本文主要介绍一下NumPy中fromfunction方法的使用。

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),

则参数将为(2, 2)array([[0, 0], [1, 1]])

 和 array([[0, 1], [0, 1]])

shape :(N,)个整数元组

输出数组的形状,它也确定传递给function的坐标数组的形状。

dtypebool,可选

传递给function的坐标数组的数据类型。默认情况下dtype为float。

返回值:

fromfunctionany

调用函数的结果直接传回。因此,的形状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)

文档:numpy.fromfunction.html

推荐阅读
cjavapy编程之路首页