
python
文章平均质量分 52
一从际发
这个作者很懒,什么都没留下…
展开
-
Python命名规范
具体如下:模块名:module_name包名:package_name类名:ClassName方法名:method_name函数名:function_name异常名:ExceptionName全局常量名:GLOBAL_CONSTANT_NAME全局变量名:global_var_name实例名:instance_var_name函数参数名:function_parameter_name局部变量名:local_var_name总结来讲:1.对于类名,用驼峰命名法;2.对于其他,用下划原创 2022-04-22 14:16:58 · 1488 阅读 · 0 评论 -
python:从.txt文件中批量安装依赖包
使用场景1、将自己的一个项目打包好后,希望别人能方便快速的安装使用自己的项目。那么就可以将项目依赖的所有包写到一个requirements.txt中。(注:可以是任意的.txt文件名,比如env.txt。)2、下载了别人的项目代码,需要一键配置所有的依赖环境。编写requirements.txt。比如一个示例如下:--index https://pypi.douban.com/simple/werkzeugflask==2.0.1Pillowopencv-python第一行指定pip安原创 2021-08-07 21:28:24 · 13937 阅读 · 0 评论 -
pandas:dataframe在指定位置插入一行数据
直接在末尾添加一行数据思路:利用df.apped()方法即可实例:data = { 'name':['li', 'gg', 'zz'], 'age':[20, 21, 22], 'height':[170, 178, 174]}df = pd.DataFrame(data)print('df:')print(df)df_new = df.append({'name':'yy', 'age':25, 'height':168}, ignore_index=True)pr原创 2021-05-17 14:17:02 · 31774 阅读 · 2 评论 -
flask学习笔记(四):利用render_template()渲染html
基础render_template()有什么用在Python代码中 直接生成 HTML 缺点很多,比如笨拙,效率低,可读性差。因此, Flask 提供了 Jinja2 模板引擎来帮助开发者高效灵活生成HTML。使用该方法可以渲染模板,你只要提供模板名称和需要作为参数传递给模板的变量就行了。html模板文件的位置模板即自己写好的模板html文件,需要放在templates文件夹内。目录结构如下:/application.py/templates /hello.html或者/appl原创 2021-05-01 01:49:12 · 16307 阅读 · 4 评论 -
flask学习笔记(三):文件浏览器+下载指定文件夹中的文件(包含子文件夹)
需求利用flask开一个web-app,其功能是:在网页上罗列出一指定根文件夹中的文件或子文件夹。当用户点击该文件链接后,可下载至本地;当用户点击子文件夹时,在网页上罗列出该子文件夹中的文件或其子文件夹。注意:这里的文件夹结构是已知的有限的。比如最多只有两级子目录。实现此实例中的目录结构如下:在根目录下有两级子目录。代码如下:...原创 2021-04-30 20:41:54 · 3186 阅读 · 3 评论 -
flask学习笔记(二):文件浏览器+下载指定文件夹中的文件
需求利用flask开一个web-app,其功能是:在网页上罗列出一指定文件夹的文件。当用户点击该文件链接后,可下载至本地。注意:为了简便,这里的文件夹只是一级目录,即没有子文件夹。对有任意子文件夹中文件的下载,后续再学习一下再实现该功能。实现代码如下:from flask import Flask, send_from_directoryimport osapp = Flask(__name__)root_dir = r'E:\Documents\test'def file_lis原创 2021-04-28 00:52:25 · 2471 阅读 · 0 评论 -
flask学习笔记(一):第一个web-app
简介Flask是什么Flask是一个用Python编写的Web应用程序框架,基于Werkzeug WSGI工具包和Jinja2模板引擎。关键词解释如下:什么是web框架:一个库和模块的集合,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。Web Server Gateway Interface(Web服务器网关接口,WSGI)已被用作Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范。Werkzeug:它是一个WSGI原创 2021-04-28 00:13:38 · 540 阅读 · 1 评论 -
Pandas DataFrame使用实例1:英超积分榜
import pandas as pd对表格的各种操作中总体上就可以分为4类:查,改,增,删。下面我们来练习一个如何对DataFrame进行各种操作。实例1:英超积分榜用英超积分榜这个实例来熟悉下pandas中DataFrame的操作。首先从网上抠一个当前的英超积分榜,保存为ecxel格式。然后导入到pandas中,初始化为一个DataFrame。df = pd.read_excel("C:\\Users\\CFSKA\\Documents\\tmp\\tmp\\英超积分表.xlsx", i原创 2021-04-24 19:39:43 · 490 阅读 · 0 评论 -
python数据分析之曲线拟合(3):指数函数拟合
引入指数形式的曲线也是工程实践中经常遇到的。比如指数衰减。处理流程获取实验数据x, y利用scipy.optimize.curve_fit()进行指数函数拟合。curve_fit本质是提供一个目标函数和初值,通过优化算法去搜索出最佳的拟合参数。可以提供一个初值,使得拟合更快更准。得到拟合出的系数,进行后续的数据处理。实例已知一组类似指数衰减数据,形如:y=a0ex/a1+a2y = a_0e^{x/a_1}+a_2y=a0ex/a1+a2,需拟合出系数。import numpy原创 2020-11-15 01:22:33 · 31235 阅读 · 7 评论 -
python数据分析之曲线拟合(2):三角函数sin/cos拟合
方法获取实验数据x, y利用scipy.optimize.curve_fit()进行三角函数拟合。curve_fit本质是提供一个目标函数和初值,通过优化算法去搜索出最佳的拟合参数。在这里目标函数定义为:a0sin(a1x+a2)+a3a_0\sin(a_1x+a_2)+a_3a0sin(a1x+a2)+a3需要给出一个初值[a0, a1, a2, a3]。主要是频率参数a1,可通过傅里叶变换fft得到一个初值。得到拟合出的系数,进行后续的数据处理。比如周期,频率,峰峰值等原创 2020-11-12 21:52:44 · 20846 阅读 · 2 评论 -
python数据分析之曲线拟合(1):二次函数拟合
引入在实际项目中,往往有这样的需求:对采集到的数据进行数据处理(曲线拟合),再计算出一些想要的参数,比如峰值/dip值/周期等等。核心即曲线拟合。不同的曲线形式,就灵活选择不同的拟合函数。其中一种常见的形式为:二次函数拟合。方法获取实验数据x, y利用np.polyfit(x, y, 2)进行二次拟合得到拟合出的系数,进行后续的数据处理实例已知一组二次曲线型数据,要求拟合出该曲线,并且返回最大点/对称点的坐标。import numpy as npimport matplotlib.原创 2020-11-12 17:15:41 · 22659 阅读 · 1 评论 -
将json数据保存为matlab格式数据.mat
需求需要将json文件中的数据导入到matlab中进行数据分析。实现思路是:1.将json文件导入到python中读取出数据;2.利用scipy.io.savemat()将数据存储为.mat格式(blog)实例from scipy.io import savematdef json_to_mat(filename): fin = open(filename, encoding='UTF-8') s = json.load(fin) data = dict() f原创 2020-11-12 11:36:26 · 2360 阅读 · 0 评论 -
将python中数据保存为matlab数据格式.mat(嵌套list转变为cell格式)
需求将python程序中的数据保存为.mat格式数据,方便后续导入到matlab中进行处理分析。实现可调用已有接口:scipy.io.savemat(file_name, mdict)file_name为保存的文件名mdict为一个字典,其中包含了要保存的变量名和对应的值。实例实例代码如下:分别保存int, string, list, dict, array类型数据到一个.mat文件。看一下效果如何。from scipy.io import savematimport numpy as原创 2020-11-12 11:19:47 · 29760 阅读 · 15 评论 -
python:any和all函数
简介python中有两个内置函数any()和all(),熟练掌握它们后,可在许多需要逻辑判断的实际场景中使用到。简单讲:any():如果列表中所有元素都为False,则返回False;否则有一个为Ture,就返回True。all():如果列表中所有元素都为True,则返回True;否则有一个为False,就返回False。实例In [5]: a = [-4,-3,3,4]In [6]: all([x>0 for x in a])Out[6]: FalseIn [7]: any([原创 2020-11-07 22:04:56 · 2199 阅读 · 0 评论 -
python:遍历文件夹下所有/特定的文件
引入在实际项目中,常需要批量处理某些文件夹下的子文件夹/文件。因此就需要遍历文件夹下所有的文件。若只想读取特定的文件,就是在遍历过程中加一个条件判断即可,比如限定只访问特定后缀名的文件。在python中,可通过os模块的os.walk()轻松实现对文件夹的遍历。os.walk()接口的基本使用:传入参数top,即需要遍历的根文件夹返回结果是一个生成器,可通过for循环去迭代其中的元素,就是一个从上至下的目录树。Signature: os.walk(top, topdown=True, o原创 2020-11-02 13:52:21 · 4546 阅读 · 1 评论 -
python pcolor坐标显示类似matlab imagesc效果
实例已知自变量x,y为两个一维数组,因变量z为对应shape的二维数组,要求画出类似matlab imagesc的二维图效果。效果1不对x,y做坐标处理,直接由meshgrid生成格点坐标,那么结果图中数据点是体现在网格线上,直观上会觉得少一列数据。效果2对x,y先做个坐标处理,再由meshgrid生成格点坐标,那么结果图中数据点就是体现在网格中央,及类似matlab imagesc的效果import numpy as npimport matplotlib.pyplot as plt原创 2020-10-26 00:33:38 · 4326 阅读 · 0 评论 -
python:if...else...简化写法
格式<OnTrue> if <conditon> else <OnFalse>实例1In [1]: print('haha') if 1>0 else print('biubiu')haha实例2In [2]: T = 40In [3]: r='hot' if T>35 else 'soso'In [4]: rOut[4]: 'hot'原创 2020-08-31 20:16:45 · 2392 阅读 · 0 评论 -
python reload模块
问题描述最近在用spyder时,先import某一模块。后发现需要修改该模块,修改代码后,重新import,却发现并没有起作用。注:暂未清楚具体原因,用vscode或者以前用的spyder似乎并没有出现这个问题。解决办法用imp模块的relaod方法,每次修改后,reload该模块。from imp import reloadimport test.mod as modreload(mod)...原创 2020-08-25 20:54:54 · 629 阅读 · 1 评论 -
python:利用json保存和读取数据
引言实际项目中,往往需要保存数据到本地,以便后续查看和复用。一种思路是将数据保存为json格式,它适用于:待保存的数据主要是python的原生数据类型(Int, double, str, list, tuple, dict等)保存数据codeimport jsondictObj = { 'name': 'zhuang', 'state': 'exciting', 'data': [1,2,3,4,5]原创 2020-08-20 23:15:49 · 4106 阅读 · 0 评论 -
python:获取当前日期时间
方法利用datetime模块import datetimenow = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')print(now)输出2020/08/20 22:54:57使用场景保存文件时,利用当前时间生成文件名原创 2020-08-20 22:57:43 · 1685 阅读 · 0 评论 -
spyder的一些设置
plt绘制的图不显示在ipython中,而是单独弹出一个窗口。设置:T-原创 2020-08-02 22:06:43 · 1466 阅读 · 0 评论 -
matlab vs python: 跑循环的速度对比
测试1matlab代码N = 20:25;iters = 2.^N;time = zeros(1,length(N));a = 0.111;b = 0.222;for k = 1:length(N) r = 0; t1 = clock; for i = 1:2^N(k) r = 0.5*a + 0.6*b; end t2 = clock; time(k) = etime(t2,t1); endplot(iters原创 2020-07-25 17:32:00 · 6021 阅读 · 2 评论 -
python:matplotlib 绘制两条y轴
实例代码x= np.arange(10)y1 = x**2y2 = x**4_,ax=plt.subplots()ax.plot(x,y1,'b')ax.set_xlabel('x')ax.set_ylabel('y1',color='b')ax2 = ax.twinx()ax2.plot(x,y2,'r')ax2.set_ylabel('y2',color='r')结果原创 2020-07-01 14:31:31 · 2992 阅读 · 0 评论 -
pycharm:常用配置和快捷键
shift+F10运行程序alt+shift+E运行所选double shift全局搜索alt+shift万能键ctrl+Q快速查看文档ctrl+B跳转到源码ctrl+/注释ctrl+alt+L格式化代码原创 2020-06-14 21:50:46 · 449 阅读 · 0 评论 -
python: == 与 is 的区别
相同点都可用来比较两个对象是否相同不同点比较标准不一样== 只比较:两个对象的值是否相同,内存地址可以不一样is 比较两个对象是否完全相同,即内存地址要一样实例In[18]: a= [1,2,3]In[19]: b= a[:]In[21]: a == bOut[21]: TrueIn[22]: a is bOut[22]: FalseIn[23]: id(a)Out[23]: 2500879778760In[24]: id(b)Out[24]: 2500879837320原创 2020-06-14 21:49:20 · 337 阅读 · 0 评论 -
python:map
实例1使用场景:快速多次计算一个数学函数,返回list 。注:也可用numpy,输入为array类型,即可实现一次计算出多个函数值。In [22]: list(map(lambda x: x**2, [1,2,3]))Out[22]: [1, 4, 9]In [23]: list(map(lambda x,y:x+y, [1,2,3],[1,2,3]))Out[23]: [2, 4, 6]未完待续…...原创 2020-06-14 21:35:32 · 292 阅读 · 0 评论 -
python:list常用操作
index使用:list.index(value)功能:返回value在list中的索引count使用:list.count(value)功能:返回value在list中出现的次数生成list的倒序方法1:list(reversed(iterable))方法2:list[::-1]原创 2020-06-14 21:27:00 · 365 阅读 · 0 评论 -
python:itertools product
接口Docstring: product(*iterables, repeat=1) --> product objectCartesian product of input iterables. Equivalent to nested for-loops.For example, product(A, B) returns the same as: ((x,y) for x in A for y in B).The leftmost iterators are in th原创 2020-06-10 10:18:51 · 735 阅读 · 0 评论 -
numpy:将数组保存到txt文件中
问题:1.如何将array保存到txt文件中?2.如何将存到txt文件中的数据读出为ndarray类型?需求:科学计算中,往往需要将运算结果(array类型)保存到本地,以便进行后续的数据分析。解决:直接用numpy中的方法。1:numpy.savetxt(fname,X):第一个参数为文件名,第二个参数为需要存的数组(一维或者二维)。2.numpy.loadtxt(fname):原创 2017-03-11 17:22:24 · 122780 阅读 · 12 评论 -
python:保存N维数组(ndarray)到本地文件
需求实际程序中,往往需要将运算结果(ndarray类型)保存到本地,以便进行后续的数据分析。利用numpy.savetxt可以保存1维或2维数据到txt文件中,但无法保存3维以上的数据。比如对一个图像库提取的图像特征。此时可以用numpy.savez方法来保存3维以上的数据。接口保存数据用numpy.savez可以保存任意多个N维数组,有两种保存方式:1.用*args方式,比如np.savez('data',d1,d2,d3),它将会以以arr_0,arr_1,arr_2来表示d1,d2,d3原创 2020-06-01 15:27:29 · 26960 阅读 · 0 评论 -
python: *解包
In [15]: def f(*args): ...: for i in args: ...: print(i) ...: In [16]: f(1,2,3)123In [17]: a = ['ha']*3In [18]: aOut[18]: ['ha', 'ha', 'ha']In [19]: f(a)['ha', 'ha', 'ha']In [20]: f(*a)hahaha原创 2020-05-27 16:19:59 · 232 阅读 · 0 评论 -
python:安装模块的几种方法(pip, conda,手动下载)
常用指令安装packagepip install [package]更新packagepip install [packge] --upgrade如更新pippip install pip --upgrade卸载packgepip uninstall [package]原创 2020-05-23 09:49:41 · 5819 阅读 · 0 评论 -
ipython/jupyter:常用tips
tap代码补全?对象的内省。在变量后面加?,将会输出该变量的详细信息;加??,给出更详细的信息ctrl+c中断正在执行的代码reset清楚工作空间中的变量del a删除某个变量原创 2020-05-23 09:45:52 · 175 阅读 · 0 评论 -
python:scipy.optimize.fmin
简介优化问题是工程实践中经常遇到的一种问题。简单讲,就是搜索优化出一组自变量参数,使得目标函数达到极小值(极大值)。如何搜索出这组参数呢:这就是优化算法做的事情。不同的优化算法适用于不同的优化问题。本文简要介绍在python种NM算法来解决局部优化问题。注意:scipy.optimize中的fmin和minimize都能调用NM算法来优化。两者区别:minimize是更通用的优化算法接口,它不仅包含NM算法,也可以调用其他算法;而fmin就只能用NM算法minimize中的NM算法多一个ada原创 2020-05-21 10:06:48 · 8389 阅读 · 2 评论 -
python:scipy.optimize.minimize(method=’Nelder-Mead’)
简介优化问题是工程实践中经常遇到的一种问题。简单讲,就是搜索优化出一组自变量参数,使得目标函数达到极小值(极大值)。如何搜索出这组参数呢:这就是优化算法做的事情。不同的优化算法适用于不同的优化问题。本文简要介绍在python种NM算法来解决局部优化问题。接口使用总结:NM是局域优化,即最终的优化结果会掉到一个局域最小值附近,故对初值敏感有两种方式设置初值,1.设置x0;2.设置options中的initial_simplex。手动设置initial_simplex更好,可灵活控制收敛速度。原创 2020-05-20 15:46:03 · 7369 阅读 · 0 评论 -
python:pcolor,pcolormesh
简介用pcolor可以来画2维图,即有两个自变量x,y,和一个因变量C。注意的点:pcolor是用格点来表示C值。故应先用np.meshgrid(x,y)来生成二维的x和y坐标点。C的行索引对应y坐标,列索引对应x坐标。所以画图时,一般将计算好的C转置。pcolor和pcolor功能是相同的,官方文档建议用pcolormesh,它的速度会更快。实例代码def f(x,y): return (x**2+y-11)**2+(x+y**2-7)**2x = np.linspace(-原创 2020-05-20 10:04:25 · 23471 阅读 · 1 评论 -
python:assert
assert是啥python内置的断言语句(assert statement)。语法如下:assert <condition>assert <condition>,<error message>当condition为True时,顺序执行下一语句;当condition为False时,程序会终止并抛出AssertionError,如果assert语句有error message,则会在AssertionError后显示该信息。assert的使用场景检查参数的原创 2020-05-16 00:00:05 · 737 阅读 · 1 评论 -
python: numba提升程序效率
简介是什么numba是一个的即时编译器(just-in-time compiler)。即它能在程序运行时,使用LLVM编译器库将Python函数转换为优化的机器码。从而使得运行速度可以达到C或FORTRAN的速度。怎么用只需用numba去修饰python函数即可。换言之,不需要替换Python解释器、运行单独的编译步骤、安装C/ c++编译器等额外操作。实例1问题描述对于矩阵连乘:Un...U2U1ρU_n...U_2U_1\rhoUn...U2U1ρ, 原方法是用for循环累乘.测试下原创 2020-05-14 19:54:50 · 291 阅读 · 0 评论 -
python:try except异常处理
引入语法错误可以在运行前检查出,但有一些错误只在运行时弹出,并且会使程序终止。因此,需要引入异常处理,能在运行过程中处理这些错误,使程序能保持正常运行。语法基本语法try...excepttry...except...finallyfinnaly中的代码始终会执行实例def test(a): try: res = a**2 except: print('check input') res = 0 finally: print('done')原创 2020-05-13 22:13:54 · 406 阅读 · 0 评论 -
python: multiprocessing多进程并行计算
简介多进程 vs 多线程CPU密集型用多进程;IO密集型用多线程。实例1在科学计算中使用multiprocessing进行多进程并行计算。前提:多个方法func1,func2,…,funcN是相互独立的,可以并行计算。当每个func的运行时间都较长时,利用多进程并行计算才会极大提高运行效率。原因:使用多进程本身会有一定的时间开销。实例代码注意:通过sleep(t)来模拟控制func运行消耗的时间def func1(x): print(f'当前进程:{os.getpid()},计原创 2020-05-12 10:18:08 · 1682 阅读 · 1 评论