NumPy矩阵与通用函数


掌握NumPy矩阵与通用函数

NumPy对于多维数组的运算,默认情况下并不进行矩阵运算。如果需要对数组进行矩阵运算,则可以调用相应的函数。

1、创建NumPy矩阵

在NumPy中,矩阵是ndarray的子类。在NumPy中,数组和矩阵有着重要的区别。NumPy提供了两个基本的对象: 一个N维数组对象和一个通用函数对象。其他对象都是在它们之上构建的。矩阵是继承自NumPy数组对象的二维数组对象。与数学概念中的矩阵一样,NumPy中的矩阵也是二维的。使用mat、matrix 以及bmat函数来创建矩阵。

使用mat函数创建矩阵时,若输人matrix或ndarray对象,则不会为它们创建副本。因此,调用mat函数和调用matrix(data, copy=False)等价。

很多时候会根据小的矩阵创建大的矩阵,即将小矩阵组合成大矩阵。在NumPy中,可以使用bmat分块矩阵( block matrix)函数实现。

在NumPy中,矩阵计算是针对整个矩阵中的每个元素进行的。与使用for循环相比,其在运算速度上更快。

2、通用函数

通用函数,也可以称为ufunc,是一种在ndarray数据中进行逐元素操作的函数。某些简单函数接收一个或多个标量数值,并产生一个或多个标量结果,而通用函数就是对这些简单函数的向量化封装。有很多ufunc是简单的逐元素转换,比如sqrt或exp函数:

这些是所谓的一元通用函数。还有一些通用函数,比如add或maximum则会接收两个数组并返回一个数组作为结果,因此称为二元通用函数:

这里,numpy.maximum逐个元素地将x和y中元素的最大值计算出来。也有一些通用函数返回多个数组。比如modf,是Python内建函数divmod的向量化版本。它返回了一个浮点值数组的小数部分和整数部分:

下面两张表列举的是可用的通用函数:

一元通用函数:

二元通用函数:


评论区(0)

评论