《数据科学与分析:Python语言实现》 —2.4.2 NumPy数组和矩阵
【摘要】 本节书摘来自华章计算机《数据科学与分析:Python语言实现》 一书中第2章,第2.4.2节,作者是[英]赫苏斯·罗格尔–萨拉查(Jesús Rogel-Salazar),白 皓 刘江一 上官明乔 刁 娟 译。
2.4.2 NumPy数组和矩阵
NumPy支持使用数组定义,扩展了Python支持的类型,该定义用于描述相同类型的对象集合。NumPy数组的维度由称为数组形状的N个正整数的元组定义。可以将数组视为列表的扩展,因此可以用列表创建数组:
在上面的代码片段中,我们将导入NumPy包并使用别名np来引用该模块。借助NumPy中的array命令,我们将列表转换为数组对象。如果我们要打印数组C,将获得以下内容:
请注意,在这种情况下,Python确实按预期叠加了元素。在上面的示例中,我们可以简单地使用上一节中的列表定义并编写如下:
正如上面提到的,NumPy扩展了Python中列表的功能,以便能够执行矢量运算,例如:
矢量加法:+
矢量减法:-
元素乘法:*
点积:dot()
叉乘:cross()
你可能已经注意到我们一直在说矢量运算,但是矩阵呢?NumPy当然也支持矩阵操作。我们通过np.matrix来定义矩阵:
在这种情况下,我们使用矩阵命令来定义对象,并且乘法的结果是符合预期的:
定义NumPy矩阵的另一种方法是使用mat函数来定义NumPy数组。
线性代数中广泛使用的操作是矩阵的转置。使用transpose命令可以很容易地实现这一点:
最后,使用SciPy包,我们可以使用linalg方法,这将使我们能够进行一些典型的线性代数计算,如矩阵求逆:
在上面的代码中,我们定义了数组x和y,然后借助线性代数模块的.inv命令计算n=(xTx)-1。请注意,代码中的命令.T返回矩阵的转置。然后我们计算k=xTy,最后是coef=nk =(xTx)-1xTy。使用dot()函数可以对数组进行矩阵乘法。我们将在第4章中详细讨论该计算的细节。
我们故意将调用结果命名为coef,因为我们可以将这个计算结果简单地看作使用数组x和y的线性回归的系数。我们将在第4章对这个结果进行进一步讨论。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)