Pandas_Task01:预备知识

这篇博客旨在为学习Pandas打下基础,回顾python基础知识,特别是map函数的使用,并对Numpy进行总结。同时,博主分享了自己对练习题的独特见解,涉及到矩阵元素更新的算法。

学习目标:

python基础


学习内容:

提示:这里可以添加要学的内容
例如:
1、 python基础
2、 pandas基础


遗漏的python知识

  1. map函数:它返回的是一个 map 对象,需要通过 list 转为列表:
map(function, iterable, ...)
list(map(lambda x: 2*x, range(5)))#e.g.

numpy总结

引用模 块函数/属性名实例说明
import numpy as np
1)基本属性
array.ndim数组维度
array.size数组元素个数
array.dtype数组数据类型
2) 基本函数
np.set_printoptions()np.set_printoptions(precision=4, suppress=True)设置输出精度,是否使用科学计算
np.array()np.array([[1,2,3,4],[0,1,2,3]] )创建 ndarray对象
np.arange()np.arange(15) np.arrange(-3,3,0.2) #0.2为步长创建一个等差数组
np.zeros()np.zeros(10) np.zeros( (3,6) )生成一个给定大小的全0数组
np.ones()np.ones( (2,3,2) )生成一个给定大小的全1数组
np.reshape()np.arange(15).reshape(3, 5)将一维数组转换为指定的多维数组
3) 通用数学函数
np.abs()、np.fabs()np.abs(x),np.fabs(x)计算整数、浮点数或复数的绝对值
np.sqrt()np.sqrt(arr)计算各元素的平方根
np.square()np.square(x)计算各元素的平方
np.exp()np.exp(arr)计算各元素的指数
np.sin()、np.cos()、np.cosh()、np.sin() np.sinh()、np.tan()、np.tanh()np.sin(arr)普通和双曲型三角函数
np.floor()np.floor(arr/10) #将arr转换成整数形式的十分制分数计算各元素的floor值,即小于等于该值的最大整数
np.ceil()计算各元素的ceiling值,即大于等于该值的最小整数
3) 二元函数
np.add()将数据中对应的元素相加
np.subtract()从第一个数组中减去第二个数组中的元素
np.multiply()数组元素相乘
np.divide()除法或向下取整除法
np.power()对第一个数组中的元素A,根据第二个数组中的相应元素B,计算AB
np.mod()元素级的求模运算
np.copysign()将第二个数组中的值的符号复制给第一个数组中的值
np.equal(),np.not_equal()执行元素级的比较运算,产生布尔型数组
4) 聚集函数
array.sum()arr.sum() #全部求和 arr.sum(1) #按给定轴求和,产生低一维的数组求和函数
array.mean()arr.mean()算术平均值
array.min()、array.max()arr.max()、arr.min()最大值和最小值
array.argmin()、array.argmax()arr.argmax()、arr.argmin()最大值和最小值的索引
array.cumsum()arr.cumsum(axis = 1) #逐列求累加和从0开始向前累加各元素
array.cumprod()arr.cumprod()从1开始向前累乘各元素
5) 随机生成函数
np.random.random()随机产生[0,1)之间的浮点值
np.random.randint()np.random.randint(0, 2, size = (2,10)) #生成0-1之间的整数随机数,维度是2*10随机生成给定范围内的一组整数
np.random.uniform()随机生成给定范围内服从均匀分布的一组浮点数
np.random.choice()在给定的序列内随机选择元素
np.random.normal()np.random.normal( 1, 2.1, size(4,4) ) #生成4*4的矩阵,均值为1,方差为2.1随机生成一组服从给定均值和方差的正态分布随机数
6) 条件逻辑的数组运算
np.where()result = np.where(cond, xarr, yarr) np.where( arr>0, 2, -2) #将arr数组中>0的替换为2,其余替换为-2 np.where( arr>0, 2, arr) #将arr数组中>0的替换为2,其余不变三元表达式:x if condition else y的矢量化版本

numpy总结
可在这里下载

练习题自己的想法

#作业
M1 = np.random.rand(2,3)
M2 = np.random.rand(3,4)
res = np.empty((M1.shape[0],M2.shape[1]))
for i in range(M1.shape[0]):
     for j in range(M2.shape[1]):
        item = 0
        for k in range(M1.shape[1]):
             item += M1[i][k] * M2[k][j]
        res[i][j] = item
(abs(M1@M2 - res) < 1e-15).all() # 排除数值误差
#------------------------------------------------------------#

#rewrite
result = np.array([[np.sum(row*col) for col in Mat2.T ] for row in Mat1  ])
  1. 设矩阵 Am×n ,现在对 A 中的每一个元素进行更新生成矩阵 B ,更新方法是 Bij=Aij∑k=1n1Aik
A= np.mat('1 2 3;4 5 6;7 8 9')
B = [ [A[r][c] * np.sum(1/A[r,:]) for c in range(A.shape[1])] for r in range(A.shape[0])  ]
  1. Chi-SquareStatistic
np.random.seed(0)
A = np.random.randint(10, 20, (8, 5))
B = (A.sum(axis=0)*A.sum(axis=1).reshape(-1,1))/A.sum()
((A-B)**2/B).sum()
np.random.seed(0)
m, n, p = 100, 80, 50
B = np.random.randint(0, 2, (m, p))
U = np.random.randint(0, 2, (p, n))
Z = np.random.randint(0, 2, (m, n))
##就是求一个2-范数emmm
(((B**2).sum(1).reshape(-1,1)+(U**2).sum(0)-2*B@U)*Z).sum()
A = np.array([3,2,1,2,3,4,6])
np.diff(np.nonzero(np.r_[1,np.diff(x)!=1,1])).max()
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值