本来是草稿,趁着今天1024水一个勋章

目录

前言

文件读写

遍历文件夹/文件

生成随机颜色

numpy创建一个空白图像/数组,opencv画线

np创建一个指定颜色的图像/数组

生成随机数/随机矩阵

关于python中函数形参的问题

plt画图

plt画图时显示中文异常

将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):

生成随机颜色

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)

图像应该是什么颜色,蓝色。

生成随机数/随机矩阵

# 生成3*100的随机矩阵,随机值0-1之间
a=np.random.random(size=(3,100))# 生成随机值0-100之间
a=np.random.random(size=(3,100))*100# 生成1-10之间的随机整数
a=np.random.randint(1,10,size=(3,100))

关于python中函数形参的问题

参考这个写的

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.plot(a[:, 0],".",color="red")

==> 添加label注释

plt.plot(a[:, 0],color="red",label="info")
plt.legend()
添加注释label的话,一定要有下面一行才可以显示出label

==> XY轴刻度问题

假如删除掉plt.axis('equal'),看下效果,XY轴刻度不一致,就相当于是放大拉伸局部,可以观察的更清楚。

a=np.random.random(size=(100,3))*10
plt.figure()
plt.plot(a[:, 0],color="red")
plt.show()

==>沿XY轴翻转镜像

plt.gca().invert_xaxis()  # 沿x轴翻转
plt.gca().invert_yaxis()  # 沿y轴翻转

==>保存画的图像

在创建画布的时候可以设置尺寸,这个尺寸好像是英寸,假如想保存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画图时显示中文异常

添加一行即可,不需要什么下载字体库,基本都有字体的

plt.rcParams['font.sans-serif'] = ['SimHei']

将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列

画三维图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
#创建3D坐标系
ax = fig.gca(projection='3d')file = "x.txt"
a = np.loadtxt(file)for val in a:#前三个参数为起点,后三个参数为终点#不想显示箭头的话,将最后一个参数0.1改为0ax.quiver(0,0,0,val[0],val[1],val[2],arrow_length_ratio=0.1)
ax.set_xlim(0,0.2)
ax.set_ylim(0,0.2)
ax.set_zlim(-1,0)plt.show()

Python拟合曲线

import matplotlib.pyplot as plt
import numpy as npx = [1260, 1360, 1460, 1560, 1760, 1960, 2060, 2360,2550]
y = [3393, 2793, 2493, 2293, 1793, 1393, 1353, 1082, 1029]
z1 = np.polyfit(x, y, 3)  # 用3次多项式拟合,输出系数从高到0
p1 = np.poly1d(z1)  # 使用次数合成多项式
y_pre = p1(x)plt.plot(x, y, '.')
plt.plot(x, y_pre)
plt.show()

Python常用命令总结【持续更新】相关推荐

  1. Linux常用命令(持续更新)

    [前言] 翻看了一下博客记录,距离上次学习Linux差不多快两年了:最近两个多月由于项目的需要,自己又重新对Linux进行学习 和并进行了些实践:接触过Linux的读者都知道操作Linux的一种十分重 ...

  2. 个人常用命令集锦 持续更新

    OS 1. 立刻关机 halt 2. centos安装yum apt-get install yum 3. 查找文件夹 find / - name 需要查找文件名称 4. vi里面 查找字符串 &qu ...

  3. svn拉取文件合并_svn常用命令——-自用——-持续更新中 | 学步园

    ============================================================ 博文原创,转载请声明出处 电子咖啡(原id蓝岩) ============== ...

  4. 你值得掌握的 Git分支等 常用命令 (持续更新中)

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Git分支 一.本 ...

  5. Docker 常用命令收录 -- 持续更新

    Docker 常用命令收录 容器操作 docker build -t friendlyname . # 使用当前目录下的内容创建Dockerfile镜像文件 docker run -p 4000:80 ...

  6. Linux服务器运维常用命令(持续更新)

    1.ip addr   查看本机IP地址 Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上还有一个命令叫ip addr可以查看IP地址. 2.serv ...

  7. Linnx常用命令(持续更新)

    系统信息 [root@VM_0_5_centos ~]# arch #显示机器的处理器架构 x86_64 [root@VM_0_5_centos ~]# uname -m #显示机器的处理器架构 x8 ...

  8. linux技术笔记(常用命令)持续更新中。。。

    文章目录 1.Linux 下解压 .zip 和 .rar 文件 2. [Mac 终端命令大全](https://www.jianshu.com/p/3291de46f3ff) 3.Maven环境 本地 ...

  9. 【云原生-K8s】k8s常用命令大全-持续更新【kubectl】

    命令说明 命令说明 -A 表示所有信息 -o wide 表示详细信息 –show-labels 表示查询标签详细信息 node 相关 获取节点信息 kubectl get node 获取节点详细信息 ...

  10. mysql(mariadb)常用命令(持续更新ing)

    目录 数据库 创建数据库 切换到某个 数据库下 表 创建表 创建数据 更新表中数据 查看表结构 重命名表 删除重复数据 查看前n行数据 列 增加列 修改列 主键 删除列 重命名列 mysql导入csv ...

最新文章

  1. 别再乱打日志了,这样才是定位 bug 打日志的方式!
  2. nginx 开启gzip 配置js_前端性能优化之缓存与GZIP
  3. [网站链接]Debbie博客上的链接: [求职网站][博客链接][信息资源]……
  4. eclipse无法运行 ,报错:the selection cannot be launched
  5. python与正则表达式(part1)--元字符
  6. django加载本地html
  7. [css] 如何使用css实现跨浏览器的最小高度?
  8. 移植gettimeofday
  9. [cocos2dx笔记015]关于cocos2dx Button三种状态说明
  10. hysys动态模拟教程_泄压过程的HYSYS动态模拟.pdf
  11. 蓄电池在线监测、蓄电池在线核容系统
  12. 17家中国初创公司的失败史
  13. [安卓开发] 总结一些android的云测试平台
  14. 2021-10-11
  15. 深入学习Java:关于List下标越界源码分析
  16. [OS-Linux] CentOS 7.x 系统安装以及常用配置
  17. 3、nginx设置简单的代理服务器-阅读官方文档
  18. 双指针—安排会议日程(leetcode 1229)
  19. 计算机水平vb,2020年计算机等级VB考试强化练习题及答案
  20. 【机器学习】决策树(理论)

热门文章

  1. java有什么特性?
  2. 绝地求生2月26服务器维护吗,绝地求生更新维护到几点今天 2月26日停机更新维护公告...
  3. poj 1151 hdu 1542
  4. mysql 切割字符串 并用for循环_mysql完成字符串分割
  5. QQ机器人{登录流程篇}
  6. html中树状图实现方式
  7. php和PHPnow冲突了,Win10下安装PHPnow的解决方法
  8. 正则匹配空格、单行注释、多行注释
  9. 教你用华为云玩转物联网开发
  10. 评 女天才 某解放军女少校梦里获编程灵感