1

Python中用NumPy创建自己的通用函数

 7 months ago
source link: https://www.jdon.com/72443.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Python中用NumPy创建自己的通用函数

NumPy 是 Numerical Python 的缩写,是用于临床计算的 Python 环境中的基础库。它为运行大型多维数组和矩阵提供帮助,并提供广泛的数学功能以成功地对这些数组进行操作。

NumPy 的关键功能之一是它能够创建通用函数 (ufunc),它可以帮助您详细遵循 NumPy 数组的自定义操作。

这里,我们将探索如何使用 Python 在 NumPy 中创建您自己的通用特征。

什么是通用函数 (ufunc)?
在 NumPy 中,通用函数(ufunc)是一种对 NumPy 数组进行元素敏感操作的功能,这意味着它独立地对数组的每个元素执行操作。 Ufunc 旨在成功地使用大型数组进行绘制,并且是 NumPy 中许多操作的基本构建块。

NumPy 中的常见 ufunc 由加法、减法、乘法、除法、三角函数等数学函数组成。例如,如果您需要详细添加两个 NumPy 数组,则可以使用numpy.add() ufunc,它是一个内置 ufunc。

为什么使用ufunc?
Ufunc 用于在 NumPy 中强制执行向量化,这比迭代因子更快。

他们还提供广播和其他策略,如减少、聚集等。这可能对计算非常有帮助。

Ufunc 还接受其他参数,例如:

  • 布尔数组或条件中的位置定义了操作必须占用的区域。
  • dtype定义因子的返回类型。
  • 输出数组,其中需要复制返回成本。

创建您自己的 Ufunc
在 NumPy 中创建自己的 ufunc 可以让您概述自定义操作,并有效地观察它们对 NumPy 数组敏感的细节。以下是开发您自己的 ufunc 的分步指南:

第 1 步:导入 NumPy
首先,您需要导入 NumPy 库。如果您尚未安装 NumPy,则可以使用 pip 来完成此操作:
pip install numpy  

import numpy as np  

第 2 步:定义您的自定义函数
创建一个 Python 函数,定义您需要详细应用于 NumPy 数组的自定义操作。这一功能应该采用一个或多个标量参数并返回操作的最终结果。例如,允许创建一个简单的自定义 ufunc,对数组的每个元素进行平方:

def square_function(x):  
    return x ** 2  

步骤 3:使用 numpy.Frompyfunc() 创建 Ufunc
要将您的自定义特征直接转换为 ufunc,您可以使用numpy.frompyfunc()功能。此特性接受参数:自定义 Python 函数及其所需的各种输入参数。在我们的实例中,square_function采用一个输入参数,因此我们将其作为第二个参数传递给numpy.frompyfunc():

square_ufunc = np.frompyfunc(square_function,  1 ,  1 )  

square_ufunc对象已转换为 ufunc,现在可以在 NumPy 数组上使用。

第 4 步:使用您的自定义 Ufunc
现在您已经创建了自定义 ufunc,您可以使用它在 NumPy 数组上运行,就像使用集成 ufunc 一样。这是使用 square_ufunc 的方法的一个实例:

arr = np.array([8, 4, 2 ,1, 3])  
result = square_ufunc(arr)  
print(result)  
import numpy as np  

Define the  Custom Function  
def square_function(x):  
    return x ** 2  

使用 numpy.frompyfunc() 创建一个 Ufunc;
square_ufunc = np.frompyfunc(square_function, 1, 1)  

使用自定义 Ufunc  
# 创建一个 NumPy 数组  ;
arr = np.array([8, 4, 2, 1, 3])  

# Apply the custom ufunc to the array  
result = square_ufunc(arr)  

print(result)  

输出:
[64 16 4 1 9]

import numpy as np  

def myadd(x, y):  
  return x+y  

myadd = np.frompyfunc(myadd, 2, 1)  

print(myadd([8, 4, 2, 1], [0, 2, 8, 2]))  

[8 6 10 3 ]

自定义 Ufunc 的优点
在 NumPy 中创建自定义 ufunc 有几个好处:

  1. 可重用性:一旦描述了自定义 ufunc,您就可以在代码的独特组件中重用它,从而提高代码的可重用性和可维护性。
  2. 集成:自定义 ufunc 可以无缝集成到现有的基于 NumPy 的工作流程中,从而更轻松地扩展 NumPy 的功能来满足您的独特需求
  3. 效率: Ufunc 针对性能进行了优化,并且可以成功地与大型阵列配合使用。通过开发自定义 ufunc,您可以成功地将自定义操作应用于大数据集。
最后,在 NumPy 中开发您自己的通用功能 (ufunc) 是扩展库功能以满足您的特定需求的有效方法。无论您是想执行自定义数学运算还是以独特的方式操纵事实,自定义 ufunc 都可以简化您的信息处理职责并增强 NumPy 的技能。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK