python
文章平均质量分 52
一从际发
这个作者很懒,什么都没留下…
展开
-
python: 曲线拟合
多项式拟合拟合函数:y=p0xn+p1xn−1+...+pny=p_0x^n+p_1x^{n-1}+...+p_ny=p0xn+p1xn−1+...+pn方法:numpy.polyfit(x, y, deg)deg即为拟合函数中的n,表示几阶多项式,比如deg=1,即线性拟合y=p0x+p1y=p_0x+p_1y=p0x+p1, deg=2,即二次曲线拟合y=p0x2+p1x+p2...原创 2020-05-08 11:46:00 · 717 阅读 · 0 评论 -
python:符号计算-sympy
引入什么是符号计算(Symbolic computation)就是对数学表达式进行解析计算,而不是近似计算。可以简单分为两类:不包含符号的表达式包含符号的表达式sympypython中可用sympy库进行符号计算。优点:开源,轻量级。可以做的事情:算数运算,微分,积分,矩阵运算等等。下面总结常用的应用实例。小例子In [14]: import sympy as symIn...原创 2020-05-04 12:52:32 · 5131 阅读 · 0 评论 -
python:numpy.random模块生成随机数
简介所谓生成随机数,即按照某种概率分布,从给定的区间内随机选取一个数。常用的分布有:均匀分布(uniform distribution),正态分布(normal distribution),泊松分布(poisson distribution)等。python中的numpy.random模块提供了常用的随机数生成方法,下面简要总结。按均匀分布生成随机数rand功能按照均匀分布,在[0,1...原创 2020-05-01 17:38:36 · 3010 阅读 · 0 评论 -
python:绘制直方图(Histogram)
简介本文主要总结如何绘制直方图,以及常用的使用场景。什么是直方图:一个随机变量在各个取值区间有个概率分布,将其绘制出来:x轴为等间隔的取值区间(bins),y轴为该区间的频数(可归一化),即直方图。接口如下,几个重要的参数:x,随机变量的所有取值Signature:plt.hist( x, bins=None, range=None, densit...原创 2020-05-01 12:49:44 · 16245 阅读 · 0 评论 -
python:classmethod和staticmethod的区别和使用场景
引入初学python面向对象,对classmethod和staticmethod的区别和使用场景进行简单总结。注:两者的使用场景并不完善,只是记录自己用过的。语法区别声明时:classmethod的第一个参数为类本身(cls),正如实例方法的第一个参数为对象本身(self);staticmethod第一个参数不需要传入cls或self,故staticmethod中是无法访问类和对象的...原创 2020-04-28 11:40:22 · 17394 阅读 · 0 评论 -
python:矩阵(ndarray)的常用运算
简介下面简单总结python中矩阵的常用运算。重要注释:在numpy中既可以用二维数组(numpy.ndarray)来表示矩阵,也可用numpy.matrix来表示矩阵。但我统一选择用ndarray来表示矩阵。原因:ndarray更通用,可以表示任意N维数组;官方文档不推荐用matrix,可能会在未来版本中移除matrix以前用matrix的一个好处是,可以直接用a*b进行矩阵乘法,...原创 2020-04-27 21:52:28 · 7860 阅读 · 0 评论 -
jupyter notebook切换python环境
开发环境windows + anaconda + vscode操作流程1、在terminal中输入:conda env list,会显示当前你有哪些python环境。其中带*号的是默认激活的python环境。即通过jupyter notebook打开的notebook默认是该环境。C:\Users\ABC\Documents\Python Scripts>conda env list...原创 2020-04-26 17:19:16 · 2156 阅读 · 0 评论 -
python:遍历相关tips
enumerate使用场景遍历可迭代对象时,想同时输出元素的索引和值。替代for i in range(len(ys))这种笨重的写法。接口Init signature: enumerate(iterable, start=0)Docstring: Return an enumerate object. iterable an object supporting...原创 2020-04-16 16:54:27 · 145 阅读 · 0 评论 -
python:savgol_filter的简单使用
引入在做数字信号处理时,有时采集到的信号有较大的噪声,比如下图。因此想要尽量将信号平滑化,而且信号的形状保持不变。savgol_filter简介什么是savgol_filterSavitzky-Golay滤波器最初由Savitzky和Golay于1964年提出。广泛地运用于数据流平滑除噪,是一种在时域内基于局域多项式最小二乘法拟合的滤波方法。这种滤波器最大的特点在于在滤除噪声的同时可以...原创 2020-04-14 21:13:03 · 33260 阅读 · 0 评论 -
python:类的魔术方法-magic method
引入类的魔术方法是什么:定义在类里的特殊方法,一般格式为__func__有什么用:方便的实现各种特定的功能。下面简单汇总下各种魔术方法,以后方便自己查阅。魔术方法汇总根据不同的功能,将其简单分为几类。构造和初始化方法功能__new__ (cls,other)创建类并返回这个类的实例__init__(self, other)根据传入参数初始化实例。注意与_...原创 2020-04-14 12:08:38 · 540 阅读 · 0 评论 -
python: and or 与& | 运算符的区别
问题引入在对布尔数组进行布尔运算时,and报错,而&正常。后仔细研究了下,发现是没有理清python中的and or与& | 的区别。In [37]: a=np.arange(-3,3)Out[37]: array([-3, -2, -1, 0, 1, 2])In [38]: a>0Out[38]: array([False, False, False, F...原创 2020-04-11 16:47:25 · 1406 阅读 · 0 评论 -
python:由已知数组快速生成新数组-numpy
需求描述在利用numpy进行数据分析时,常有的一个需求是:根据已知的数组生成新数组。这个问题又可以分为两类:根据筛选条件生成子数组;根据变换条件生成新数组(新数组shape与原数组相同)下面简单总结.生成子数组情况1已知数组a,以及若干筛选条件conds,要求从数组a中生成一个子数组b。解决办法:b=a[conds]。比如b=a[a>0],b=a[(a>=1)|(a...原创 2020-04-07 12:55:34 · 4010 阅读 · 0 评论 -
python:find_peaks
需求已知一条曲线(x, y),想要找到各个peak或dip,以及对应的x值。应用:已知一幅频谱图,要求找到各个peak及对应的频率解决方案1、直接利用已有的方法scipy.signal.find_peaks2、自己写一个方法思路:1.利用sort(list(zip(y,x)))全部排序;2.再根据各个条件筛出结果,比如y值大小,相邻peak的间距等。这样看与方法1思路是可能是相同的。...原创 2020-04-07 11:30:52 · 21959 阅读 · 0 评论 -
python:将matlab数据文件.mat导入到python中
需求将matlab下保存的数据.mat文件,导入到python中进行数据分析。实现搜索后发现有现成接口可以调用:scipy.io.loadmat(filename)实例test_data.mat中有I0,I1两个变量,是5000*800的矩阵。目的是:将该数据文件导入大python中,提取出I0和I1。代码如下:from scipy.io import loadmatfile ...原创 2020-04-06 10:45:18 · 14656 阅读 · 3 评论 -
python:notebook安装与使用
用处notebook的最大好处是完美结合了:code运行+markdown文档。安装安装anaconda,自带notebook应用使用方法常用快捷键命令模式(command mode)编辑模式下按Esc进入命令模式快捷键作用快捷键作用Ainsert cell aboveBinsert cell belowD+Ddelete cellYto ...原创 2020-04-05 13:47:48 · 1438 阅读 · 0 评论 -
python:matplotlib绘图及常用属性设置
引入import matplotlib.pyplot as plt利用matplotlib.pyplot,可以快速灵活地绘制出想要的图形。一般有两种绘图方式:1、面向过程式直接调用方法plt.plot(),再调用设置属性的方法,比如plt.xlabel()等等使用场景:快速绘制一幅简单的图2、面向对象式先生成fig,ax对象,在利用ax绘图。比如fig, ax = plt.subp...原创 2020-04-05 12:40:53 · 3529 阅读 · 0 评论 -
python:利用Graphviz和pyreverse 分析类文件自动生成UML图
需求阅读一些源码时,想直观的看一下它的UML类关系图。搜索发现已有相关的软件可以实现这个功能。安装软件个人开发环境:windows+vscodegraphviz在官网安装即可:graphviz注意:安装好后,将安装路径添加到环境变量中。我的路径是C:\Program Files (x86)\Graphviz2.38\binpyreverse该程序已集成在pylint模块中,若未...原创 2020-04-02 19:54:22 · 5049 阅读 · 14 评论 -
python:matplotlib绘图无法显示中文或负号,显示为框框
1、问题:无法显示中文,显示为框框。解决:运行代码找到matplotlib配置文件路径import matplotlibmatplotlib.matplotlib_fname()用文本编辑器打开matplotlibrc配置文件,查找到#font.family:和#font.sans-serif这两行。去掉这两行的注释,并在font.sans-serif:后添加SimHei...原创 2020-04-01 21:05:39 · 2246 阅读 · 0 评论 -
下载bing图片并设置成桌面壁纸
主要实现:从bing下载图片并保存到本地;然后稍加处理将该图片设置为桌面壁纸。# -*- coding: cp936 -*-import urllibimport osimport timeimport Imageimport win32api,win32con,win32guiimport redef getPicFromBing(): url='http://c原创 2015-04-13 17:04:29 · 2277 阅读 · 0 评论 -
python连接Mysql操作
简介Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。对应Mysql数据库的接口是MySQLdb。使用流程import API模块连接数据库执行sql语句,进行各种操作(查询,插入,更新,删除等)关闭数据库连接实例查询import MySQLdbtry: db=connect_原创 2015-12-16 09:32:54 · 376 阅读 · 0 评论 -
matplotlib绘图:1.基本操作
#learn matpltlibimport matplotlib.pyplot as pltimport numpy as np''' plotting several lines with different format styles in one command using arrays'''def test1(): t=np.arange(0,5,0.2)原创 2017-02-22 22:25:52 · 793 阅读 · 0 评论 -
python函数中*args和**kwargs的区别
经常在python函数中看到这两个参数:*args和**kwargs,它们有什么用,又有什么区别呢。def test_args_kwargs(a,*args,**kwargs): print(a) print('args:',args) print('kwargs',kwargs)输出结果如下:test_args_kwargs(1,'qubit',['flux qu原创 2017-03-04 23:14:34 · 691 阅读 · 0 评论 -
numpy:入门
为什么需要numpy:Python中的l数据类型list占用资源过大,不适合做大量计算;数据类型array又只能存储一维数组。所以引入numpy来处理多维数组的存储和计算。原创 2017-03-08 23:42:22 · 288 阅读 · 0 评论 -
spyder中常用快捷键
熟练spyder中的一些快捷键后,能极大提升code效率。这里列出常用的快捷键。(注:在spyder导航栏Tools-Preferences-Keyboard shortcut中有所有的快捷键)Tab/Shift+Tab:代码缩进/撤销代码缩进Ctrl+1:注释/撤销注释Ctrl+4/5:块注释/撤销块注释Ctrl+L:跳转到行号F5:运行F11:全屏原创 2017-03-11 15:05:14 · 45007 阅读 · 1 评论 -
numpy:自定义数据类型dtype
需求除了numpy中内置的dtype,有时我们需要自定义类型。比如想创建一个类似C中的结构数组,这时就需要自定义dtype了(和matlab中的cell也类似)实例In [1]:person=np.dtype({'names':['name','age','hometown'],'formats':['S32','i','S32']})In [2]:personIn [ ]:p=n原创 2017-04-01 15:37:36 · 15495 阅读 · 1 评论 -
python:查看程序运行时间
需求查看程序运行时间;比较不同算法的执行效率方法time模块中的clock()实例import timedef test(): start=time.clock() a=0 for i in range(1000000): a+=i end=time.clock() total_time=end-start print("总耗时:原创 2017-04-01 15:49:16 · 10317 阅读 · 1 评论 -
python:格式化操作
格式化操作本质:映射常见用途:对字符串格式化输出;对数值进行精度处理,进制转换等。两种方式:1.用%格式符来格式化;2.用str.format()方法格式化1.用%格式符 a.格式化字符串。例:'%s+%s=%s'%('fu','sheng','shabi') b.格式化数值。例:'%.2f'%3.14152.用str.format()方法。 a.原创 2014-12-11 10:57:53 · 1111 阅读 · 0 评论