Python常用命令总结【持续更新】 | 您所在的位置:网站首页 › python常用命令合集 › Python常用命令总结【持续更新】 |
本来是草稿,趁着今天1024水一个勋章 目录 前言 文件读写 遍历文件夹/文件 遍历文件夹2 生成随机颜色 numpy创建一个空白图像/数组,opencv画线 np创建一个指定颜色的图像/数组 生成随机数/随机矩阵 关于python中函数形参的问题 plt画图 ==>最简单的情况 ==> 指定颜色 ==> 画散点图 ==> 添加label注释 ==> XY轴刻度问题 ==>沿XY轴翻转镜像 ==>显示网格 ==>保存画的图像 plt画图坐标轴相关设置 坐标轴字体 设置坐标轴刻度字号 设置坐标轴显示范围 设置坐标轴线粗细 设置坐标轴标签 设置坐标轴科学计数法表示 设置坐标轴以固定间隔显示刻度 plt多张图画在一起 plt画图时显示中文异常 matplotlib解决负号无法显示 将txt数据直接读取为ndarray数组 删除np数组中的某行或某列 画三维图 Python拟合曲线 前言python确实好用,有些库甚至随便猜都能猜对一些函数名。但是,库太多了,功能函数名根本记不住(我是记不住),每次用到什么都要C一下。关键是C站中的文章太多了,很难定位到自己适合且舒服的用法,干脆就把自己用到的记录下来,这样下次忘记直接在自己文章里搜索,会更加精准快捷。 开始 记录的顺序可能会很乱,用到什么记什么。更多的都是常用的基础功能,奇淫技巧什么的咱也不会。 文件读写 with open('nameyoulike.txt', 'w') as f: f.write("Hello World!") 遍历文件夹/文件 for dirpath, dirnames, filenames in os.walk(root): for dirpath2 in filenames: path.append(os.path.join(dirpath, dirpath2))判断文件/路径是否存在 if os.path.exists(path): 遍历文件夹2 path_full = [] filename = [] for root, dirs, files in os.walk(file): if root != file: break for file in files: path = os.path.join(root, file) path_full.append(path) filename.append(file) print(path) 生成随机颜色 import random def get_random_color(): """获取一个随机的颜色""" r = lambda: random.uniform(0,1) return [r(),r(),r(),1]生成三通道颜色,0-255之间 def get_random_color3(): """获取一个随机的颜色""" r = lambda: random.uniform(0,255) return [r(),r(),r()] numpy创建一个空白图像/数组,opencv画线 import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.line(image,(0,0),(511,511),(255,0,0),3) #画直线 cv2.imshow("绘制直线",image) cv2.waitKey()虽然指定的线的颜色是(255,0,0),但是三个通道的顺序是BGR,所以线是蓝色的。 想让线是红色的话,又不修改颜色,可以变换一下图像的通道顺序,将BGR改为RGB。 import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.line(image,(0,0),(511,511),(255,0,0),3) #画直线 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制直线",image) cv2.waitKey() 这里画线使用的颜色就可以用随机颜色 cv2.line(image,(0,0),(511,511),get_random_color3(),3) np创建一个指定颜色的图像/数组 img = np.zeros((300, 400, 3), np.uint8) # 浅灰色背景 img.fill(200) # 这是对三个通道全部填充固定数值 cv2.imshow('img', img) cv2.waitKey(0) # 我曾这样尝试对每个通道填充不同的数值 # img.fill((255,0,0)),但是失败 只要思想不滑坡,换个方法再来对每个通道填充不同数值。不是不可以对3通道同时填充吗,那我就单独填充。如下: img = np.zeros((300, 400, 3), np.uint8) img[:,:,0].fill(255) img[:,:,1].fill(0) img[:,:,2].fill(0) cv2.imshow('img', img) cv2.waitKey(0)图像应该是什么颜色,蓝色。 参考这个写的 python中函数的四种形参_Kaiser king的博客-CSDN博客_python函数形参 plt画图 ==>最简单的情况 a=np.random.random(size=(3,100))*10 # 生成的随机值在0-10之间 plt.figure() # a[0,:]是个行向量,也可以是列向量 plt.plot(a[:, 0]) # 最简单的情况,没有其他参数 plt.axis('equal') plt.show()plt.plot(a[:, 0],color=(1,0,0)) 可以添加颜色参数,指定颜色,这里的颜色范围需要给0-1之间,而且顺序是RGB 颜色也可以使用color='red' 假如删除掉plt.axis('equal'),看下效果,XY轴刻度不一致,就相当于是放大拉伸局部,可以观察的更清楚。 a=np.random.random(size=(100,3))*10 plt.figure() plt.plot(a[:, 0],color="red") plt.show()在创建画布的时候可以设置尺寸,这个尺寸好像是英寸,假如想保存1920像素,那么宽度就要除以dpi得到英寸。 a=np.random.random(size=(100,3))*10 plt.figure(figsize=(1920/200, 1080/200),dpi=200) plt.plot(a[:, 0],color="red") plt.savefig(u"2022年10月22日.jpg") plt.show()plt.rc('font',family='Times New Roman') 设置坐标轴刻度字号plt.xticks(fontsize=14) plt.yticks(fontsize=14) 设置坐标轴显示范围plt.xlim(0,1000) plt.ylim(-3000,-400) 设置坐标轴线粗细ax=plt.gca();#获得坐标轴的句柄 ax.spines['bottom'].set_linewidth(1);###设置底部坐标轴的粗细 ax.spines['left'].set_linewidth(1);####设置左边坐标轴的粗细 设置坐标轴标签#front是标签属性:包括字体、大小等 font = {'family' : 'Times New Roman', 'weight' : 'normal', 'size' : 18, } plt.xlabel("Episode",font) plt.ylabel(r"Average Reward",font) 设置坐标轴科学计数法表示plt.ticklabel_format(axis="y", style="sci", scilimits=(0,0)) 设置坐标轴以固定间隔显示刻度x_major_locator=MultipleLocator(15)#以每15显示 y_major_locator=MultipleLocator(3)#以每3显示 ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) plt多张图画在一起 fig = plt.figure() fig.suptitle("result") for i in range(0,6): print(i) ax = fig.add_subplot(2, 3, i+1) ax.plot(b,a[i],'.',color='g',label=str[i]) # ax.plot(y[:][i],color='pink',label='Predict') ax.legend() ax.grid(axis='y') plt.show() plt画图时显示中文异常添加一行即可,不需要什么下载字体库,基本都有字体的 plt.rcParams['font.sans-serif'] = ['SimHei'] matplotlib解决负号无法显示 plt.rcParams['axes.unicode_minus'] =False 将txt数据直接读取为ndarray数组 file = "nameyoulike.txt" a = np.loadtxt(file)但是有个前提,就是txt中的每行数据的列数要相同 删除np数组中的某行或某列 file = "nameyoulike.txt" a = np.loadtxt(file) print(a) b=np.delete(a,1,0) print(b) # delete中的第三个参数表示数组的维度,表示删除第几维的数据 # 第二个参数表示要删除维度下的序号 # 比如delete(a,1,0),第三个参数0表示删除行,第二个参数1表示删除第1行 # 再比如delete(a,3,1),第三个参数1表示删除列,第二个参数3表示删除第3列 |
CopyRight 2018-2019 实验室设备网 版权所有 |