avatar
文章
66
标签
40
分类
8

主页
时间轴
标签
分类
友链
个人
  • 情感小屋
  • 视频主页
Yan Zhang's blog
搜索
主页
时间轴
标签
分类
友链
个人
  • 情感小屋
  • 视频主页

Yan Zhang's blog

一些没什么用的python脚本碎片整理
发表于2023-01-13|日常小bug|python
前言 岁数大了,知识又学杂了,再加上阳了以后,总感觉记性不好,特来整理一些没什么用的python脚本片段snippet。大概包含 一、二维数组切片、 list中字符串转float/int、 txt删除空行、 初始化x坐标,从1-100等、 plt在同一张图上画多个折线图 不定期更新吧。 等更新到一定数量会放在github上~欢迎收藏 代码 废话不多说,直接上代码 python数组切片(一维和二维) 切片规则:对于一维array或者list a, 切片规则为sliced_a = a[start : stop: step] 1234import numpy as npa = np.array([1,2,3,4,5,6,7,8])sliced_a = a[1::2] # 省略stop就是到末尾print(sliced_a) # [2 4 6 8] 对于二维数组,和一维相似,只不过多个维度而已,来,看例子 1234import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])sliced_a = a[0::3, ...
KNN(K近邻)和K-means(聚类)的区别
发表于2022-12-23|教程|machine learning
前言 嗐,知识学多都学杂了,最近总是搞混这两个算法。今天终于有时间来整理一下。 算法简介 KNN(K-Nearest Neighbor)是机器学习中的分类算法,它将距离相近的样本点分为同一类,KNN 中的K指的是近邻个数,也就是最近的K个点,根据它距离最近的K个点的类别来判断属于哪个类别。KNN是有标签的 人以群分,物语类聚;近朱者赤,近墨者黑 是 KNN 的核心思想。这其实和我们在日常生活中评价一个人是一样的,如果你想要知道一个人是什么样的,那就去找和他关系好的几个人看看对他的评价or看和他关系好的人是什么样子的,就可以大致判断出他是什么样的人了。 而K-means聚类当属无监督聚类算法中最经典的算法 。该算法的主要作用是将相似的样本自动归到一个类别中 算法思想 话不多说,直接上算法思想 KNN的算法思想: 计算测试数据与各个样本数据之间的距离,通常为欧式距离; 按照距离的递增关系进行排序; 选取距离最小的K个点;(即最近的K个点) 确定前K个点所在类别的出现频率; 返回前K个点中出现频率最高的类别作为测试数据的预测分类。 优点:简单,易于理解,易于实现,无需估计参数。对数据没有 ...
python捕获日志之loguru
发表于2022-12-18|教程|loguru
为了保留异常或错误信息,通常会用日志的方式来进行记录。loguru 库的使用可以说是十分简单,希望大家可以使用炫酷的loguru来代替print。 安装 1pip install loguru 简单使用 123456from loguru import logger logger.debug("debug message")logger.info("info level message")logger.warning("warning level message")logger.critical("critical level message") 按照日志的严重情况可以打印出不同的颜色。 使用add()方法配置logger 12345logger.add("test.log", rotation="10 MB") # 文件大于10M会重新生成一个文件logger.add("test.log", rotation="00:00&q ...
python for循环并行,单卡多卡并行解决办法
发表于2022-12-18|教程|parallel
前言 当你显存足够,想用空间换时间;或者想单纯的加速模型。正好用的是python的for循环,而且每一次循环都是一次模型的推理过程,那么本 blog内容将非常适合你。 单卡并行 现在并行的方法有很多,本文没有对现有的方法进行归类,但是找到了适合自己用的,就分享在这里。比如: 1234567891011from concurrent.futures.thread import ThreadPoolExecutordef job(a, b): return a+bdef parallel_run(input_dir, a, b, num_worker): thread_pool = ThreadPoolExecutor(max_workers=num_worker) print('Thread Pool is created!') for i in range(len(input_dir)): thread_pool.submit(job, a, b) thread_pool.shutdown(wait=True) 再比如异步执行: ...
Linux下定时执行任务crontab
发表于2022-12-17|教程|linux
前言 作为一个linux深度爱好者,当你使用python或者shell时,能估计好运行时间,想让程序运行完以后,换个参数继续运行,这个时候你就可以去睡觉或者出去玩了~如果能定时执行,是不是很灵性的操作 crontab命令简介 Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行 使用方式 12crontab -e # 编辑cron任务# 你会看到下面的注释,把这些都删了,输入你要执行的指令 123456789101112131415161718# Edit this file to introduce tasks to be run by cron.# # Each task to run has to be defined through a single line# indicating with different field ...
解决Ubuntu显示时间不正确
发表于2022-11-18|系统问题|Ubuntu
背景 在使用loguru打印日志命名时,通常会使用系统时间;在安装完Ubuntu系统后,尤其是服务器,也会看时间,发现时间对不上 一般来说,两种情况: 时区正确,系统本身时间不正确 时区不正确 下面看解决办法 时区正确,系统本身时间不正确 1234# 查看时区date -R# Fri, 18 Nov 2022 13:31:12 +0800# 后面的 +0800 即为咱们的东八区,不是这个就不正确,需要修改系统时间,同步一下网络时间即可 1234# 安装ntpdate工具sudo apt-get install ntpdate# 同步网络时间sudo ntpdate cn.pool.ntp.org 时区不正确 重新设置时区即可 123456# 运行timezone select,会出现文本交互界面,# 选择Asia-->China-->Beijing-->Yes即可。选择过程中输入文本前面对应的数字sudo tzselect# 复制文件到/etc/localtime下sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/lo ...
python软件许可License文件生成
发表于2022-08-15|教程|License
完成软件开发后,将软件给到用户使用,但是你只希望给固定的用户或固定的电脑使用,这时license就上场了,本文介绍license的生成与调用。 前言 MAC地址是计算机的物理地址,它一般由网卡设备决定,用来表示互联网上不同的站点相关的标识符,而且每一台计算机都拥有不同的物理地址。MAC地址由计算机的网卡决定,而且它是固定的,一般不会被更改。因此将电脑的mac地址是作为电脑的标识。 获取mac地址后,通过一套加密算法将地址生成license,并给出license失效时间。然后每次运行软件前,需读取license进行解密,并与当前电脑的mac地址对比。如果相等,则授权成功,成功运行软件;否则授权失败。 实现方式 使用hash算法对mac地址加密,hash算法的特点是正向快速、逆向困难、输入敏感、冲突避免 。 加密过程 123456789# 首先获取license字典,包含mac地址,license失效时间,和mac加密结果psw = Utils().hash_msg('jerry' + str(self.mac_addr)) # 将mac地址加个字符串进行编译,增加破 ...
python@staticmethod@classmethod@property介绍与使用
发表于2022-07-18|教程|python
Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的类方法,也可以是 @staticmethod 装饰的静态方法,用的最多的还是不带装饰器的实例方法。那我们该如何区分使用它们呢? 介绍 12345678910111213141516class A(object): def m1(self, n): print("self:", self) @classmethod def m2(cls, n): print("cls:", cls) @staticmethod def m3(n): print('111')a = A()a.m1(1) # self: <__main__.A object at 0x000001E596E41A90>A.m2(1) # cls: <class '__main__.A'>A.m3(1) # 111 类中共定义了3个方法,m1 是实例方法,第一个参数必须是 ...
Python封装wheel并上传pypi(可通过pip安装)
发表于2022-07-18|教程|python
当你看到这篇文章的时候,说明你已经在python领域有所涉猎,已经不是当初的那个小白了。直接进入正题!本文做初次使用记录,随时更新 建立包结构 比如:我们想封装一个切图的功能,存放方式 12345project ├──slice ├──__init__.py ├──img_slice.py ├──setup.py 包也可以有多层结构: 1234567project ├──slice ├──__init__.py ├──img_slice.py ├──utils ├──__init__.py ├──setup.py 将以上slice包移动到你需要的conda虚拟环境envs下,找到python的根site_packages文件夹内,然后就可以直接使用import导入以上包或者指定模块,python会按照包和模块搜索路径完成加载 上面这种方式和后面的安装本地wheel和pip安装原理是一样的 封装wheel 完善setup.py信息,里边包含了你要封装的wheel的所有信息 123 ...
JPG的压缩原理
发表于2022-07-06|理解|jpg
JPG有损压缩知识点整理(待完善) 查阅资料:jpeg的压缩算法包括以下5个步骤: 图像分割成8*8的小块,压缩过程是每个小块单独处理的 颜色空间转换RGB->YCbCr 离散余弦变换DCT 数据量化 Huffman编码 代码已经复现,但是从步骤2开始就已经不是模型可以推理的格式了,步骤2-5是在遍历步骤1中每个8*8的小块中进行的,输出的结果是str类型,所以不能推理。 python代码实现 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413 ...
python中lambda函数的用法介绍
发表于2022-05-29|教程|lambda
又称匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。 lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。 语法: 1lambda [arg1 [,arg2,.....argn]]:expression args:函数将接收的参数 expression:结果为函数返回值的表达式 冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式(只能为一个)。其实lambda返回值是一个函数的地址,也就是函数对象。 举例:将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数 12345678def sum(x,y): return x+yprint(sum(1,2))# 使用lambda函数:sum = lambda x,y : x+yprint(sum(1,2))# 没有了函数sum的定义,又称为匿名函数 由于它的简单性,lambda 函数可以使Python 代码在某些场景中更优雅。下面是Python 中 lambda 函数的5个常见用法。 命名使用 123456789lambda_add_ten = lambd ...
python中copy和deepcopy详解
发表于2022-05-29|理解|python
python中标识一个对象唯一身份的是:对象的id(内存地址),对象类型,对象值。 deepcopy是真正意义上的复制,深拷贝,被复制对象完全复制一遍作为独立的新个体,新开辟一块空间。 浅拷贝,不会产生独立对象,等于赋值,只是对原有数据块打上新标签,其中一个标签改变,数据块就会变化。浅拷贝等于赋值,也可以通过copy实现,copy仅拷贝对象本身,浅拷贝不会对其中的子对象进行拷贝,如果对子对象进行修改,拷贝结果也会随着修改。 复制的对象中无复杂子对象,即列表中不嵌套列表,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。 复制的对象中有复杂子对象 (例如列表中的一个子元素是一个列表)如果改变复杂子对象的值(列表中的值)会影响浅复制的值。 12345678910111213141516171819202122232425262728293031import copya = [1,2,3,[4,5],1]b = ac = copy.copy(a)d = copy.deepcopy(a)a.append(9)a[3].append ...
1234…6
avatar
整天梦游的小jerry
Keep track of your life
文章
66
标签
40
分类
8
Follow Me
公告
--- 主域名 ---
codejerry.cn   
--- 备用域名 ---
blog.codejerry.cn
--- 自建服务地址 ---
fileshare.codejerry.cn
最新文章
Hexo文章加密 & 搜索引擎优化SEO & 评论系统Twikoo及邮件通知2024-09-26
Llama-Factory & Ollama & Langchain大模型训练-部署一条龙2024-06-05
Docker reference2024-03-22
Linux自动执行脚本2024-03-22
Linux通过ZeroTier实现内网穿透2024-03-08
分类
  • 代码指令4
  • 教程36
  • 日常小bug2
  • 理解4
  • 算法6
  • 系统问题2
  • 网络6
  • 运维6
标签
tour fileserver attention Streamlit ssh ssl shell LLM parallel frp Droppy flask ubuntu visual Ubuntu cuda lambda machine learning linux Nvidia crontab loguru texlive, texstudio Linux excel SSH bug zerotier Hexo CNN deep_learning blog python nginx hexo sort License api docker jpg
归档
  • 九月 20241
  • 六月 20241
  • 三月 20243
  • 二月 20244
  • 一月 20244
  • 十二月 20236
  • 十一月 20233
  • 八月 20231
小站资讯
文章数目 :
66
已运行时间 :
本站总字数 :
89.3k
本站访客数 :
本站总访问量 :
最后更新时间 :

格言🧬

理解的越多,就越痛苦。但是,他有着同痛苦相对称的清澈,与绝望相均衡的坚韧✨
世界上只有一种真正的英雄主义,那就是看清生活的真相之后,依然热爱生活✨
点击开启星辰之旅

猜你想看💡

  • 魔改指南网址导航
  • 我的朋友留点什么
  • 关于作者文章归档
  • 文章分类文章标签
  • 我的画廊我的唠叨
  • 建设进程网站统计

推荐友链⌛

©2020 - 2025  By 整天梦游的小jerry

搜索
数据库加载中