numpy数组与矩阵运算

重点在于对数组和矩阵的处理。

一、数组

1.创建数组 方式多样

np.array(列表 元组 range对象)
np.arange(n):同range
np.linspace():等差
np.logspace():等比
np.zeros((a,b))
np.ones((a,b))
np.identity(dim):dim*dim的单位矩阵
np.randint(s, e, num / typle):随机数组
np.rand(num):随机数
np.diag([,,,,]):对角矩阵

2.测试数组元素是否足够接近  判断浮点数相等

isclose(a, b, rtol=相对误差, atol=绝对误差, equalnan=):判断每个位置元素是否相等,返回若干个true/false。
allclose(同上):判断是否都相等,返回一个true/false。

3.修改数组值

np.append(arr, num/list)
np.insert(arr, posi, num/list)
arr[posi] = num
arr[一/二维切片] = num,这个修改方法比较多样 查文档

4.数组与标量运算 以乘方为例

arr ** num:arr内每个元素乘num次方。
num ** arr:num乘arr内的每个元素次方。

5.数组排序

np.argsort(arr):返回升序排序后的原数组下标。
arr[_]:这才能输出排序后的结果。
np.argmax(arr):求最大值 下标
np.argmin(arr)
arr.sort(axis=):原数组内排序。

6.数组内积

np.dot(x,y):计算对应位置元素乘积之和。

7.数组访问

b[0]
b[0][0] = b[0,0]
b[[0, 1]]:第一二行所有元素。
b[[0, 1], [0, 1]]:第一行第一列,第二行第二列。 #第一个列表是行,第二个列表是列。不指定列,表示所有列。
b[: : -1]:反向切片

8.数组的函数运算

np.sin(x)
np.cos(x)
np.round(x):四舍五入。
np.ceil(x):向上取整。

9.改变数组形状

x.shape:查看数组形状
x.size:查看数组元素个数
x.shape =:原地修改形状。-1表示自动计算。
x = x.reshape(( , )):返回一个新数组。不能修改元素个数,必须reshape前后相同。
x.resize(( , )):通过删除元素或者补0,能修改元素个数。

10.数组布尔运算 

x > 1:返回true/false数组。
x[x > 1]:返回满足条件的数组。
sum(x > 1 & ... & ... ):返回满足条件的元素个数。
np.all(x < 1)
np.any(x < 1)
#两个数组相比 在对比机器学习pred和target值时非常实用
a > b:同上 对应位置元素相比
a[a < b & ... & ... | ... | ...]:任意添加条件。

11.数组堆叠与合并

np.hstack((a1, a2)):对应元素水平堆叠(合并)。
np.vstack((a1, a2)):垂直堆叠。
np.concatenate((a1, a2), axis=):合并。

二、矩阵

1.矩阵生成

矩阵 只能是二维的,只能包含数字。矩阵运算也和数组不同。
np.matrix(可迭代对象)

2.矩阵转置 第i行变成第i列

x.T

3.计算矩阵特征

!axis=0,相当于把矩阵压缩到x轴。axis=1,相当于压缩到y轴。
x.mean(axis)
x.sum(axis)
x.max(axis)
x.argmax(axis)
x.diagonal():对角线元素。
x.nonzero():非0元素下标。

4.矩阵乘法

x*y

5.计算相关系数矩阵

np.corrcoef([], [])

6.方差、协方差、标准差

np.cov(x, y): 如果有X,Y两个变量,每个时刻的“x值 与其均值之差”乘以“y值 与其均值之差”得到一个乘积,再对这每时刻的乘积求和并求出均值。
np.cov(x):方差。
np.std(x):标准差。

7.计算特征值和特征向量

e, v = np.linalg.eig(列表/np数组/矩阵 ):返回特征值和特征向量。

8.计算可逆矩阵

y = np.linalg.inv(x)

9.奇异值分解

~可以把大矩阵分解为多个小矩阵的乘积,实现降维。
np.linalg.svd(a):将a分解为 u*np.diag(s)*v,并返回usv,其中s的元素就是a的奇异值。
还能计算线性方程组和范数。
好的,我可以为您总结一下Numpy数组矩阵运算实验的内容。 NumpyPython中用于科学计算的一个重要的库,它提供了高性能的多维数组对象以及各种计算和操作这些数组的函数。Numpy数组矩阵运算实验主要包括以下内容: 1. Numpy数组的创建与索引:可以使用Numpy提供的array()函数创建一维或多维数组,并且可以使用索引和切片来访问数组中的元素。 2. Numpy数组的基本运算:Numpy提供了基本的数组运算,包括加、减、乘、除等,可以对数组进行逐元素的运算。 3. Numpy数组的聚合运算:Numpy提供了一些常用的聚合函数,比如sum()、min()、max()、mean()等,可以对数组中的元素进行聚合运算。 4. Numpy数组的逻辑运算:Numpy提供了逻辑运算符,可用于数组中元素的逻辑判断,如and、or等。 5. 矩阵的创建与运算:Numpy提供了矩阵对象,可使用matrix()函数创建矩阵矩阵之间的运算包括加、减、乘、转置等。 6. 广播:Numpy提供了广播功能,可以使得不同形状的数组在运算时具有相同的形状。 通过实验练习,可以掌握Numpy数组矩阵运算的基本操作,如数组创建、索引、运算、聚合、逻辑运算以及矩阵创建、运算、转置等。同时,实验也会涉及到一些高级的Numpy应用,比如随机数生成、线性代数运算、数组的拼接、切分和重塑等,这些内容需要结合实际应用场景进行练习。 总的来说,Numpy数组矩阵运算实验是Python科学计算中非常重要的部分,需要反复练习和实践,才能掌握这些知识点并灵活运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值