数据清洗和准备-数据分析知识学习
一、处理缺失数据
1.1 判断缺失数据
缺失数据在pandas中呈现的方式有些不完美,但对于大多数用户可以保证功能正常。对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。常被称为哨兵值,可以方便的检查出来:
123456789101112131415161718import pandas as pdimport numpy as npstring_data = pd.Series(["aardvark","artichoke",np.nan,"avocado"])print(string_data)print(string_data.isnull())# 结果0 aardvark1 artichoke2 NaN3 avocadodtype: object0 False1 False2 True3 Falsedtype: bool
在pandas中,我们采用了R语言中的惯用法,即将缺失值表示为NA,它表示不可用not avail ...
z 变换及离散时间 LTI 系统的 z域分析-MATLAB学习
一、有理函数z变换的部分分式展开
如果信号的z域表示式X(z)X(z)X(z)是有理函数,设X(z)X(z)X(z)的有理分式表示为:
X(z)=b0+b1z−1+b2z−2+⋯+bmz−m1+a1z−1+a2z−2+⋯+anz−nX(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+{\cdots}+b_{m}z^{-m}}{1+a_{1}z^{-1}+a_{2}z^{-2}+{\cdots}+a_{n}z^{-n}}
X(z)=1+a1z−1+a2z−2+⋯+anz−nb0+b1z−1+b2z−2+⋯+bmz−m
MATLAB信号处理工具箱提供了一个对X(z)X(z)X(z)进行部分分式展开的函数residuez,其语句格式为:
[R,P,K]=residuez(B,A)[R,P,K]=residuez(B,A)
[R,P,K]=residuez(B,A)
其中,B,A分别表示X(z)X(z)X(z)的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若X(z)X(z)X(z)为有理真分式,则K为零。下面 ...
二进制数据格式-数据分析知识学习
实现数据的高效二进制格式存储最简单的方法之一是使用Python内置的pickle序列化。pandas对象都有一个用于将数据以pickle格式保存到磁盘的to_pickle方法:
1234567891011121314import pandas as pdframe = pd.read_csv("examples/ex1.csv")print(frame)print("转化为二进制格式存储")frame.to_pickle("examples/frame_pickle")# 结果 a b c d message0 1 2 3 4 hello1 5 6 7 8 world2 9 10 11 12 foo转化为二进制格式存储
可以通过pickle直接读取被pickle化的数据,或是使用更为的方便的pandas.read_pickle:
12345678910111213141516···print("读取pickle文件")result = pd ...
系统响应及系统稳定性-MATLAB学习
一、离散时间系统的响应
离散时间LTI系统可用线性常系数差分方程来描述,即:
∑i=0Naiy(n−1)=∑j=0Mbjx(n−j)\sum^{N}_{i=0}{a_{i}y(n-1)} = \sum_{j=0}^{M}{b_{j}x(n-j)}
i=0∑Naiy(n−1)=j=0∑Mbjx(n−j)
其中,ai(i=0,1,2,...,N)a_i(i=0,1,2,...,N)ai(i=0,1,2,...,N)和bi(i=0,1,2,...,M)b_i(i=0,1,2,...,M)bi(i=0,1,2,...,M)为实常数。
MATLAB中函数filter可对差分方程在指定时间范围内的输入序列所产生的响应进行求解。函数filter的语句格式为:y=filter(b,a,x),其中,x为输入的离散序列:y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程左端与右端的系数向量。下面的示例,使用MATLAB命令绘制出当激励信号为x(n)=(1/2)nu(n)x(n)=(1/2)^nu(n)x(n)=(1/2)nu(n)时,系统3y(n)−4y(n−1)+2y(n−2) ...
基本信号的产生-MATLAB学习
在MATLAB中通常有两种方法表示信号。一种是用向量表示,另一种时用符号运算的方法来表示。用MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令绘制出直观的信号波形。
一、连续时间信号的表示
连续时间信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干不连续点以外,信号都有确定的函数值与之对应。**从严格意义上来讲,Matlab并不能处理连续信号,在Matlab中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。**下面,学习连续时间信号用向量或符号运算来表示的两种方法。
对于连续时间信号f(t)f(t)f(t)可以用两个行向量表示。第一个行向量是用来定义自变量t的,t=t1:d:t2t=t_{1}:d:t_{2}t=t1:d:t2其中t1t_1t1为初始值,ddd为步长,t2t_2t2为终止值。第二个行向量fff为连续信号f(t)f(t)f(t)在向量ttt所定义的样值。下面的代码简单演示了sin(t)sin(t)sin(t)的产生:
1234% 用Matlab表示f(t)=si ...
读写文本格式的数据-数据分析知识学习
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。下表对其进行了总结,其中read_csv和read_table可能是今后用的最多的。
以上函数的选项可以划分为以下几个大类:
索引:将一个或多个列当作返回的DataFrame处理,以及是否从文件、用户获取列名;
类型推断和数据转换:包括用户定义值的转换、和自定义的缺失值标记列表等;
日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果中的单个列;
迭代:支持对大文件进行逐块迭代;
不规整数据问题:跳过一些行、页脚、注释或其他一些不重要东西(比如由成千上万个都好隔开的数值数据)。
下面将简单的介绍这些函数将文本数据转换为DataFrame时所用的技术。由于工作中实际碰到的数据可能十分混乱,一些数据加载函数(尤其是read_csv)的选项逐渐变得复杂起来。pandas文档有这些参数的例子,如果在阅读某个文件感觉很难,可以通过相似的足够多的例子找到正确的参数。
其中一些函数,比如pandas.read_csv,有类型推断功能,因为列数据的类型不属于数据类型。也就是说,你不需要指定列的类型到底是数值 ...
Pandas入门(三)
这将是Pandas入门篇的最终篇了,人看麻了。
一、带有重复标签的轴索引
直到目前为止,所有范例都有着唯一的轴标签(索引值)。虽然许多pandas函数(如reindex)都要求标签唯一,但这并不是强制性的。来看看下面这个简单的带有重复索引值的Series:
12345678910111213141516171819import pandas as pdobj = pd.Series(range(5), index=["a", "a", "b", "b", "c"])print("-----obj-----")print(obj)# 索引的is_unique属性可以告诉你它的值是否是唯一的print("-----obj.index.is_unique-----")print(obj.index.is_unique)# 结果-----obj-----a 0a 1b 2b 3c 4dtype: int64-----print ...
了解LSTM网络--拜读ChristopherOlah的博文记录
一、唠唠近况
开学我就大三了,时间飞逝呀!两个月的暑假接近尾声,还算是充实。近况,一方面暑假准备的论文已经交由老师修改了,最后应该是由我检查全文语法错误而结束,最终投出去。另一方面,又又又在准备下一篇论文,初步想法是在原网络中融入LSTM。经过两天的网上冲浪,CSDN看了,视频也看了,最后发现还ChristopherOlah大佬的一篇Understanding LSTM Networks – colah’s blog最经典了,因此做部分记录,大部分都是翻译的啦。
二、了解RNN网络
在传统RNN中,模块将具有非常简单的结构,例如单个tanh层。
LSTM是针对传统RNN存在"长期依赖"问题而设计的网络架构,这并不是说RNN你能处理"长期依赖"。事实上通过认为的选定参数,RNN绝对有能力处理这种“长期依赖”,但这是一件吃力不讨好的事情。LSTM通过三个"门"的设计,连接长短期记忆,从而帮助RNN减轻了处理"长期依赖"问题的压力。下面是ChristopherOlah对RNN处理长、短期问题的综述:
有时,我们 ...
编写一个Python实现文章内图片外链替换
一、前言
昨天部署Qexo后台时,把之前安排为图床的域名给错用(😀该死呀!)。本来是打算把后台的域名给换掉的,后来想像好久没用过正则表达式了,所以借此机会编写一个读取所有.md文件然后替换文章中原域名的Python短代码。
二、正文
具体代码如下,详细注释都写在代码里面了:
123456789101112131415161718192021222324import reimport os# 读取.md文件并替换链接def replace_links(file_path): with open(file_path, 'r', encoding='utf-8') as file: content = file.read() # 使用正则表达式找到包含'https://blog.gan1ser.top'的链接 pattern = r"(https://blog\.gan1ser\.top)(/.*)" replaced_content = re.sub(pattern, r ...
利用Github Action将博客自动部署到服务器
此教程是基于安知鱼-使用 Github Action 自动部署,在此基础上修改autodeploy.yml文件实现自动部署到云服务器端,除去部署到服务器端的部分本篇不做介绍,可参考安知鱼的文章。
一、修改YML文件
假设你已成功完成Github静态页面自动部署,在autodeploy.yml文件尾部添加以下代码即可:
123456789- name: 部署到云服务器 uses: cross-the-world/scp-pipeline@master with: host: ${{ secrets.USER_HOST }} user: ${{ secrets.USER_NAME }} pass: ${{ secrets.USER_PASS }} connect_timeout: 10s local: './public/*' remote: /www/wwwroot/hexo
注意:remote参数写入服务器端 ...