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)
领取专属 10元无门槛券
私享最新 技术干货