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
标签
docker fileserver bug tour jpg blog CNN LLM parallel Linux License excel texlive, texstudio ssh Nvidia deep_learning nginx lambda shell attention frp ubuntu hexo sort crontab machine learning flask zerotier cuda Droppy loguru visual python Hexo linux SSH ssl api Ubuntu Streamlit
归档
  • 九月 20241
  • 六月 20241
  • 三月 20243
  • 二月 20244
  • 一月 20244
  • 十二月 20236
  • 十一月 20233
  • 八月 20231
小站资讯
文章数目 :
66
已运行时间 :
本站总字数 :
90.1k
本站访客数 :
本站总访问量 :
最后更新时间 :

格言🧬

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

猜你想看💡

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

推荐友链⌛

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

搜索
数据库加载中