Python模块-Numpy(三)-数值运算

1. 矩阵转置与矩阵相乘(线性代数概念)

在数组矩阵运算中,转置是经常被用到的一种方法,用于将矩阵行、列转换。在Numpy中,一维矩阵和多维矩阵的转换方法不同,分别为和。

1.1 矩阵转置

arr.T和transpose()转置:

命令可以快速地进行矩阵的转置,将其由n x m矩阵转化为m x n矩阵,操作如下。

上述arr矩阵是一维的,通过arr.T可以很容易的进行转置。除了arr.T命令,也可以使用来进行转置。

对于转置之后的矩阵,只是对原有数组进行转换之后输出,输出的转置矩阵指向的还是原有矩阵,修改转置之后的矩阵元素也会改变原有矩阵相应位置处的元素。

对于矩阵的高级转换,可以通过transpose()和swapaxes()两个函数进行,具体的请见本次推送的另外一篇文章。

1.2 矩阵乘法

在线性代数中,矩阵相乘时,要求第一个矩阵的列数和第二个矩阵的行数要一致,因此经常要用到矩阵转置的方法,在获得符合条件的矩阵之后,就可以进行矩阵的相乘,函数为。

上面的代码中,首先创建了一个3 x 5的矩阵,若要实现矩阵的乘法,需要一个5 x 3的矩阵,此处通过arr.T将原有矩阵转置,之后进行矩阵的乘法,输出3 x 3矩阵。

2. 普通数值计算

Numpy是python中的一个数值计算模块,可以实现几乎所有的数值计算方法,总结见下表。以下方法中参数均为数组,且只能提供一个,运算时对一个数组的每个元素进行处理并返回结果。

说明

sign:返回数值的状态(1正数,0,-1负数);

ceil:向上取整;

floor:向下取整;

modf:将数组各元素的正数和小数部分分开,分别返回

rint:四舍五入

sqrt:取平方根,对于负数,返回nan

对于方法,有负数存在的条件下虽然会计算出结果,但是会报如下的错误,提示数值错误,这点应该注意。

3. 矩阵运算

此处讲的矩阵运算更多的侧重于两个矩阵之间的运算,在运行时提供的参数为两个数组,一些情况下还要求两个元素的shape是一样的。具体的方法列表如下。

说明:

add/subtract/multiply/divide:第一个参数是数组,第二个参数可以是数组,也可以是数字,运算时将两个数组进行加和/求差/求积/求商,加和/求差/求积/求商时是相同位置的两个元素进行加和/求差/求积/求商,此时若两个数组长度不一致,则会报错;当第二个元素是数字时,运算时每一个元素都会与该数值相加求和/相减求差/相乘求积/相除求商。

power:输出第一个数组元素的x次方,x为第二个数组对应位置处的数值,或者只提供一个数值也可以

maximum/minimum:求两个数组对应位置处的元素大小,如果提供的是数值,则数组中每一个元素同这个值比较,输出最大值

mod:取余数。对于涉及到负数的取余,不同软件算出来的数值并不一致,可以参考网上的这篇文章“负数取余运算[1]”。

copysign:将第二个数组的正负号转移至第一个数组并输出

以上就是介绍的有关于用Numpy模块进行数值计算的相关知识,更多详细的内容可以查看网上帖子或者以下这本书籍。

参考书籍:

Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython (2017, O’Reilly)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180911G1TSHK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券