第四章-Python数值计算工具-Numpy

数组的创建与操作

创建数组
通过np.array函数创建,向函数中传入一个列表或元组,就构造出一个简单的一维数组;传入多个嵌套的列表或元组,就构造出一个二维数组,其中数组内的每个值都是相同类型的。

数据元素的获取
一维数组:单个元素直接通过位置,多个元素直接通过中括号输入想要获取的元素位置即可;
二维数组:必须写成[rows , cols]的形式,如果是某行某列的全部元素,则用:替代数字,如果是连续的几行几列,用:将首行和末行或首列和末列连接起来。

上面两种方法只能获取单个或连续的元素,如果想获取某几行或某几列,就要用np.ix_函数。

第四章-Python数值计算工具-Numpy

数组的常用属性

第四章-Python数值计算工具-Numpy

数组的形状处理
改变形状:
reshape(rows , cols):返回改变形状后的预览,不会真正改变数组形状;
resize(rows , cols) :不会返回预览,但会直接改变数组的形状。

第四章-Python数值计算工具-Numpy
降维:
按行降成一维:ravel、flatten、reshape(-1)。
按列降成一维:ravel(order=’F’)、flatten(order=’F’)、reshape(-1,order=’F’)
第四章-Python数值计算工具-Numpy
除此之外,三个函数之间还有其他的不同之处。flatten实现的降维是对原数组的复制,对其中元素修改后,原数组的值不会发生改变。其他两个实现的降维返回的是视图,对其中元素进行修改,原数组的值也对应改变。
第四章-Python数值计算工具-Numpy

数组堆叠:
横向堆叠:np.hstack或np.column_stack
纵向堆叠:np.vstack或np.row_stack

第四章-Python数值计算工具-Numpy

基本运算
四则运算:对应的函数分别是np.add、np.subtract、np.multiply、np.divide。
%表示取余,//表示整除,表示指数。
第四章-Python数值计算工具-Numpy
第四章-Python数值计算工具-Numpy
广播运算:**
之前所介绍的方法,都是基于形状相同的数组,当数组形状不同的时候,也能进行数学运算的功能成为数组的广播,但是广播功能也是需要一定规则的:
1.各输入数组的维度可以不相等,但必须保证从右到左的对应维度是相等的;
2.如果对应维度值不相等,那就必须保证其中一个为1;
3.各输入数组都向其shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐。

具体实例:
1.arr12 = np.arange(60).reshape(5,4,3) , arr10 = np.arange(12).reshape(4,3),可以看到arr12是一个维度是5,4,3的三维数组,而arr10是一个维度是4,3的数组,虽然他们的维度不一样,但是从右到左的维度是相等的,因此可以进行广播运算,如果是arr12+arr11的话,就是将arr10分别加到5个维度中去。
2.arr12同上,arr13 = np.arange(4).reshape(4,1),两个数组的维度不相同,但是arr13一个维度是一,所以也是可以进行运算的,也是分别加到其他所有维度中。
3.第三点其实在之前已经有所体现,像第二个例子中,其实是5个维度中每个维度都是4行3列的数组,那arr13是4行一列的数组,那结果其实是5维中的每个数组的每一列都加上了arr13。

常用的数学和统计函数:
这里直接展示在代码中了,有需要的话直接用:

第四章-Python数值计算工具-Numpy
线性代数的相关计算:
线性代数的相关计算有矩阵乘法、矩阵分解、行列式求解等。

第四章-Python数值计算工具-Numpy
特征根和特征向量:
复习一下,假设A为n阶方阵,若存在数k和非零向量x,使得Ax = kx , 则称k为A的特征根,x为特征根k对应的特征向量。在python中可以使用linalg中的eig函数。

多元线性回归模型的解:
Y = βX + σ , Y是因变量,X是自变量,σ为误差项,想根据已知的X预测Y , 需要知道偏回归系数β的值,β的求解公式为β = (X’X)求逆再与X’Y求点积。

多元一次方程组的求解:
这里直接拿一个例子来进行讲解。
3x + 2y + z = 39
2x + 3y + z = 34
x + 2y + 3z = 26
解这个方程组 , 可以看成AX = b , A代表等号左边数字构成的系数矩阵,X表示三个未知数 , b代表等号右边的数字构成得向量,想要求解X , 可以直接使用lianlg中的solve函数。

第四章-Python数值计算工具-Numpy
最后通过随机数展示一下正态分布曲线:
第四章-Python数值计算工具-Numpy

可以看到,均值(loc)相同的时候,标准差(scale)越大,曲线密度越矮胖;当标准差相同的时候,均值越大,密度曲线越往右移。

各形态的指数分布概率曲线:

第四章-Python数值计算工具-Numpy
指数概率分布密度曲线呈现在y=0 的右边,且随着lambda的增加,概率密度曲线表现得越矮,同时右边的”尾巴”更长而厚。

Original: https://blog.csdn.net/qq_43504141/article/details/127005652
Author: 小飞猪Jay
Title: 第四章-Python数值计算工具-Numpy

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/761716/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球