python
飞凡可期
Stop dreaming,start doing
展开
-
python的reshape和matlab的reshape,我们不一样
python的reshape和matlab的reshape,形似而神不同,千万当心原创 2022-07-27 18:11:40 · 670 阅读 · 1 评论 -
软件移植问题:Linux上好好程序到Windows就跑不通?
问题描述1 Linux代码跑到windows平台上一跑就崩溃,细看下发现是所有路径都寻找错误。于是定位到路径操作filename = path.split("/")[-1]原来是linux上路径分隔用斜杠/,而windows用反斜杠,无奈全改过来跑通。不再写死斜杠,用Os.sep替代最好。filename = path.split(os.sep)[-1]教训跨平台的路径分隔符,路径操作一定注意。os.sep替代写死的分隔符,斜杠/。...原创 2022-05-11 23:33:14 · 462 阅读 · 0 评论 -
python装饰器,为了不修改源函数前提下,扩展函数功能
装饰器原创 2022-04-01 13:17:28 · 993 阅读 · 1 评论 -
os.path.join最大好处是兼容windows和linux系统,频繁需要的操作
#os.path.join最大的意义是兼容windows和linux系统,不用管是"/"还是“\"连接各个路径;os.getcwd() pt = os.listdir("../")absp = os.path.abspath("../")for it in pt: pa = os.path.join(absp,it) if(os.path.isdir(pa)): print(os.path.join(absp,it))...原创 2022-02-17 11:09:48 · 985 阅读 · 0 评论 -
python的nan生成、表示、判决和忽略nan的统计运算
"""nan 三种生成方法,判断方法,来源"""#Gen nanxf = float('nan')import numpy as npxn = np.nanfrom decimal import Decimalxd = Decimal('nan')# souce of nan, 'inf' -'inf', inf/infx1 = float('inf') + 2*float('inf')x2 = float('inf') - float('inf')x3 = float('i原创 2022-02-11 17:33:32 · 1951 阅读 · 0 评论 -
MU-MIMO有意思的用户配对/调度
简单compare相关性来逐个选取R = V1*V2’;ui = smallest®;code%MU_MIMO_Schedule.m MU配对逻辑% core: smallest relative users schedule together; R = V1V2', min norm_f(R)% 1 find strong user0; 2 find smallest relative R(Sta0,Sta1); 3 find% samllest relative R(Sta(n-1), S原创 2022-01-07 10:36:52 · 1271 阅读 · 1 评论 -
cpp虚函数,基类命名指向子类实例必备佳选
简单虚函数//============================================================================// Name : p1022VirtualDeconstructor.cpp// Author : perfey// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-st原创 2021-10-22 22:02:35 · 196 阅读 · 0 评论 -
Python sympy做代数运算、解Cholesky求逆的L和L逆矩阵示例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章结构sympy包问题一、代码二、运行结果总结sympy包问题在1.6.x的包中发现用“from sympy import *"遇上频繁的Warning问题?解决方法:shell power >> pip install -U sympy 更新到了1.9系列,问题解决!提示:sympy不仅仅有symbol系列的代数运算功能,其Matrix系列的矩阵数值运算也比较方便,比如Matrix([[1,2],[3,4]])这原创 2021-10-22 12:11:48 · 961 阅读 · 0 评论 -
python自动脚本执行——之子进程管理包 subprocess
自动化脚本魅力subprocess包很管用subprocess包很管用最常用的方法有:subprocess.run .call (注意 shell = True)老的版本有:subprocess.getstatusoutpu(“cmd”)原创 2021-08-30 15:44:04 · 164 阅读 · 0 评论 -
学生信息转换系统,doc读入,一键录入xlxs
'''逐个读取学生信息,转换为格式表'''import osimport docximport xlrd, xlwtfrom xlutils.copy import copyimport re#fileName = "一二班信息"for d in os.listdir(): if d.endswith(".doc") or d.endswith(".docx"): fileName = '.'.join(d.split(".")[:-1]) pri原创 2021-08-29 12:03:58 · 169 阅读 · 0 评论 -
位数统计问题:获取一系列数据,统计bit数,并画出直方图
"""查看所有数据有多少bit"""import collectionsimport numpy as npimport matplotlib.pyplot as pltimport matplotlibwith open("f.txt") as f: x = f.readlines()digs = []for i in x: if len(i.split(" ")) > 1 : #print(i.split(" ")[1].split("\n")原创 2021-05-18 21:30:40 · 127 阅读 · 0 评论 -
python随着脚本传入系统参数
easy way# 简便方法:sys.argv输入一个列表,第0个为函数名本身,依次空格隔开各个字符串输入import syssysInput = sys.argvprint("input type", type(sysInput))for i in sysInput: print("Input para : ", i) #即第一个参数是 sysInput[1]。。。run(base) D:\Code\Python\CodeVerify\BasicSyntax>pyt原创 2021-05-17 16:03:30 · 165 阅读 · 0 评论 -
Viterbi算法
简介和示例理解Viterbi算法是典型的动态规划算法,通过中间节点的优选来大为简化整体复杂度。关键点在于隐藏状态的判断。根据观察值,转移概率来推测真实状态(隐藏状态)。注意到中间的节点所有状态都是保留的,只在最后一个观察值来最终判断哪一条路径(那个序列)是最优的就是最终的答案。比如生病、健康状态,医生每天观察到的是正常、发烧、头晕这样症状,病人每天的健康、生病状态转移有一点概率(假设平稳不变),则由发烧-健康康复的过程中每个状态点(对应观察时刻点)就是隐藏状态。我们需要知道的是医生判断出的病人每个健康状原创 2021-03-26 14:33:53 · 637 阅读 · 0 评论 -
cholsky分解 正定对称矩阵的三角矩阵“开平方”结果
"""cholsky decomp :A = L * L'or A = U' * U' means conjugate transpose"""import numpy as npC = [[4, -2, 4], [-2, 5, 0], [4, 0, 6]]print('C:\n', C, 'C tranpose:\n', np.array(C).T)L = np.linalg.cholesky(C) #对额米特正定矩阵的开平方,得到一个三角阵列;print('Low mat:\n'原创 2021-01-30 19:30:35 · 486 阅读 · 0 评论 -
Python LeetCode 10正则表达式
第一版:p的2各字符一组匹配,分析.,x状况"""10. 正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa" p = "a*"输出:true解释:因为原创 2021-01-14 10:05:01 · 139 阅读 · 0 评论 -
Python高级操作第一弹:heapq的妙用
1 基础操作"""1)基础:入堆、出堆、替换操作;heapq.heappush(heapq, item)/heapq.heappop(heapq, item)/ .heappushpop(压入一个,弹出一个)/.heapreplace(先弹出堆顶,再压入元素,和heappushpop顺序相反) 初始化:创建堆用[]的列表,或者heapify()来将填充的列表转化为堆 操作:.merge(迭代对象,key,reverse)合并多个输入,.nlarget(n,迭代,key=non原创 2021-01-11 21:51:04 · 453 阅读 · 0 评论 -
Leetcode的第2题,持续改进算法到cleancode
这是非常典型的,同样是编代码完成一样的功能,基础也够,但是写出来的速度、容易度、可阅读性、简洁性差异极大。这得看天赋和经验,绝不是简单搬砖。这是历来强调clean code和代码质量的一个原因。方法上教训自己的就是多看、多读、编码前多构思,不要凭着冲劲儿蛮干。titile给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外原创 2021-01-11 15:03:24 · 149 阅读 · 0 评论 -
python程序:学校考勤系统
main.py'''目标:做一个电子考勤系统,实现学生登录信息的增删改查、学生考勤信息的增删改查结构:-mian.py-func.py-stu_infos.csv #学生登录信息,(id,name,code) 3元组为一行记录-attendance.csv #考勤信息 (id,name,state, time) 4元组为一行记录'''from func import *def login(): info_dics = get_info('stu_infos')原创 2020-12-30 15:29:30 · 3388 阅读 · 2 评论 -
python高级特性之二:描述器初探
前置认识'''学习用python的高级特性2:描述器descriptor'''# 1 exampleclass Ten: def __get__(self, instance, owner): return 10class A: x = 5 y = Ten()print(A.x, A.y)#描述器A.y和属性差别就是 直接调用了 __get__; 相当于每次.()引用属性就调用get, call方法?# 2 listdir, 统计数目的get原创 2020-12-24 16:58:04 · 125 阅读 · 4 评论 -
装饰器使用
前置认识'''学习装饰器,python重要特性之一;用函数修改函数'''# 1 函数内定义函数:只能函数内部访问def hi(name = 'greet'): print('S1: Inside hi function!' ) def greet(): return 'now in greet function' def hello(): return 'now in hello func!' print(greet())原创 2020-12-23 21:45:02 · 136 阅读 · 0 评论 -
python3.8的好玩新特性,python logging日志记录教程
funny features'''python 3.8 引入不少好玩的新特性:比如判断条件里可以赋值的海象运算:=,限定位置/,限定关键字*f-string说明符,'''# 1 position *,/ 海象运算def fun(a, b, /, c, d): return a + bprint(fun(2, 3, c=5, d=6))for i in [6, 4]: if (x := 3) > 2: print('x = ', x)原创 2020-12-22 15:40:47 · 387 阅读 · 0 评论 -
python数学画图之双曲函数系列
code:"""sinhx = (e^x - e^(-x)) /2cosh x = (e^x + e^(-x)) /2tanh x = sinh x/ cosh x = (e^x - e^(-x)) / (e^x + e^(-x))coth x = cosh x/ sinh x = (e^x + e^(-x)) / (e^x - e^(-x))sech x = 1/coshxcsc x = 1/sinhx"""import numpy as npimport matplotlib.py原创 2020-12-12 14:50:53 · 2360 阅读 · 1 评论 -
AI网络之最简编写方法:autokeras
偶然翻keras翻到的封装版autokeras,按照分类器做:1. 4行代码图像分类距离"""autokeras ,keras ecologyTarget: construct a fast & simple nn"""import autokeras as akfrom tensorflow.keras.datasets import mnistimport numpy as np(x_train, y_train), (x_test, y_test) = mnist.lo原创 2020-12-05 18:38:10 · 898 阅读 · 0 评论 -
python小试牛刀: K-best算法
"""k-best解决的问题:n个珠宝价值vi和重量wi;求保留k个珠宝的单位价值最大化n,vi,wi 值域。。。"""def k_best(v_ls,w_ls,k): l,r = 0.0, 1e5 #maximun 10,0000 while abs(r-l) > 1e-6: mid = (l + r)/2.0 vw_ls = [v - mid * w for v,w in zip(v_ls, w_ls)] choose原创 2020-11-04 11:30:32 · 3318 阅读 · 0 评论 -
python小试牛刀:抢手机/抢票神器
codeimport timefrom splinter.browser import Browser#url = "https://item.jd.com/100013976326.html"def login(b): #登录京东 b.click_link_by_text("你好,请登录") time.sleep(3) b.click_link_by_text("账户登录") b.fill("loginname","xxx") #填写账户密码 b.fill原创 2020-11-01 20:46:32 · 1352 阅读 · 2 评论 -
k-means聚类算法: python实现
codeimport numpy as npimport matplotlib.pyplot as pltimport randomdef kMeans(daSet, K): centerPoint = random.sample(daSet, K) center_dis = 9999 iterNum = 0 while np.mean(center_dis) > 1e-6: ind = assignment(daSet, centerP原创 2020-10-31 10:58:44 · 271 阅读 · 0 评论 -
matplotliba画有意思的3D图,主3D加xyz轴方向投影
from mpl_toolkits.mplot3d import axes3dimport matplotlib.pyplot as pltfrom matplotlib import cmimport numpy as npdef draw3Dcontour(func, s= "x^2 + y^3"): x = np.arange(-2*np.pi, 2*np.pi, 0.5) y = np.arange(-2*np.pi, 2*np.pi, 0.5) X, Y = n原创 2020-10-27 19:56:16 · 1237 阅读 · 0 评论 -
python小试牛刀:多线程通过condition来同步
背景并发线程是为了效率,多个无关联子任务并发执行,加速明显。但是很多任务的开启是有逻辑依赖关系。比如A线程搬移完数据,BCD线程才能进一步处理数据。codefrom threading import Threadimport threadingimport time#创建一个period线程,周期性启动threading.condition() .wati()设置来设置一波时序;# 通过时序控制两个线程数数;class periodTick: def __init__(self,i原创 2020-10-26 20:28:28 · 159 阅读 · 0 评论 -
python, scipy.optimize.minimize进行等式不等式约束优化 非常强大
codeimport numpy as npfrom scipy.optimize import minimize# optimize 1# f(x) = 2xy + 2x - x^2 - 2y^2; x^3 - y = 0; y - 1 >=0def func(x, sign=1.0): return sign * (2*x[0]*x[1] + 2*x[0] -x[0]**2 -2*x[1]**2)def func_deriv (x, sign=1.0): dfdx0原创 2020-10-25 20:59:08 · 5152 阅读 · 2 评论 -
keras练手的好东西 https://github.com/keras-team/keras/tree/master/examples 收藏AI东西
linkhttps://github.com/keras-team/keras/tree/master/examples修改报错的话,试试所有的import keras.xxx 改为 import tensorflow.kersas xxximport keras 改为 import tensorflow.keras as keras原创 2020-10-10 14:08:18 · 275 阅读 · 0 评论 -
python小工具:自动解压缩包, cannot find tool 问题
目的解开当前文件夹下的每一个.rar压缩包,各放入同文件名的文件夹下。方法工具python rarfile:主要语法为 rarFile.RARFile(FileName.rar).extractall(path)codeimport rarfileimport osdef unRar(rarFileName): rar = rarfile.RarFile(rarFileName + ".rar") if rarFileName not in os.listdir原创 2020-09-30 10:59:38 · 750 阅读 · 0 评论 -
python 3D,点成球,螺旋线/面,等高线,莫比乌斯环
点成球import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3DPC = []x = np.arange(-10,11,1)for i in x: #[1,2]: y = list(np.arange(-np.sqrt(100-i**2),np.sqrt(100-i**2)+1 )) for it in y: PC.append([i,it])原创 2020-09-22 18:27:47 · 926 阅读 · 0 评论 -
python string和bytes互相转换,去除str(bytes)输出的b‘字眼
b1 = b"i am dady"b2 = b"dady"print('*'*20,'Bytes => String','*'*20)print('将bytes串直接str()输出,带有b\'xx\': ',str(b1),' ',str(b2))print('一种去除b字眼方法,str(x,encoding=\'utf-8\'):',str(b1,encoding='utf-8'), ' ',str(b2,encoding='utf-8'))print('第二种去除b字眼方法,b.d原创 2020-09-13 11:45:53 · 22279 阅读 · 0 评论 -
Python numpy ndarray加减乘除 矩阵乘 简洁版
#2 numpy + - * / @a = np.arange(0,20).reshape(4,5)b = np.arange(-21,-1).reshape(4,5)[::-1,::-1]c = np.diag([-1,-10,-1000,-100000,-100000000])print(a,b)print('a+ - * / b:',a+b, a-b,a*b,a/b)print('mat multiply: a@c',c, a@c)加减乘除只要都是对ndarray,shape相同,或原创 2020-09-12 18:06:10 · 1506 阅读 · 0 评论 -
读取采集的特定格式数据
Target: arm上实际采集的数据,byte输出,读取数据并输出来;格式为意义格式大小PPDU_ID1个int324Bmac_id1个int324Bmac_addr1个6字节 hex6Bdata 1 dim数组256长度复数,先实部后虚部都是float16256x4Bimport numpy as npimport binasciiimport matplotlib.pyplot as pltf = open(r'./phone_原创 2020-09-12 14:38:57 · 118 阅读 · 0 评论 -
numpy的包训练:读写文件、常用函数、random随机数模块和 有用的linalg线性代数模块
import numpy as npimport matplotlib.pyplot as plt'''# 1)numpy readtxt, savetxt 读取和创建txt csv等文件# 2)numpy 常用的函数操作(都是可对数组迭代的,而内建的len(),abs()等只能单元素操作:绝对值fabs,四舍五入、三角-双曲三角、对数指数# 3)np.random random模块的随机操作,生成正态、均匀、泊松的数组random.normal .poisson .uniform;生成排列组合,原创 2020-09-10 22:28:42 · 125 阅读 · 0 评论 -
时间-日期格式化输出,统计程序时间,统计CPU时间
#Note 时间经常用于创建图形、文件的命名和打标签;一个format的格式事半功倍;#另外,还常用来统计程序运行时间,决定大致算法取舍#1 输出时间格式import time# 年-月-日-时-分-秒print('{0}-{1}-{2}-{3}-{4}-{5}'.format(*time.localtime()))print('%s-%s-%s-%s-%s-%s'%(time.localtime()[0:6]))#第一个*解包,{i}占位;第二个用类似c语言的格式化输出#2 统计时间原创 2020-09-02 18:48:13 · 281 阅读 · 0 评论 -
虚拟环境安装不同于主版本的包 比如Tensorflow1.x
目的为了在不动我的主要环境(安装了tensorflow2.0.1)下,运行tensorflow.contrib.tensorboard.plugins(只有TF1)可以。一般而言,有三种思路,1 主环境换版本(涉及换版本倒来倒去的麻烦); 2 利用compact进行TF2到TF1的迁移(涉及代码改动,耗时,头疼。但如果同时需要TF1 TF2的特性,只能这么干)3 对我无须TF2的特性,新建虚拟环境最是方便,代价只是付出一小块内存。方法1 cmd窗口,一路走到想要设置虚拟环境的地方;2 virtua原创 2020-08-11 10:06:52 · 297 阅读 · 0 评论 -
PrettyTabel常用操作
功能方法项目代码按行/列构建表格tb=pt.PrettyTabel(), tb.add_row(), tb.add_col()操作类:排序/删除tb.sortby=xx, tb.delete_row(ind)文件导出 导入类:htmltb.get_html_string(), pt.from_html_one(tb_str)运行效果代码import prettytable as pt#1# 按照行构建表格tb = pt.PrettyTable原创 2020-06-24 15:51:09 · 344 阅读 · 0 评论 -
Python学爬虫
目标项目内容难度正则表达式抓大放小方法论, .*?非贪婪模式, 字符/数字/格式匹配4❤文件读写txt,csv, pdf读写, 读写的数据结构如字典列表等等,pdf最难,公式读取是顽疾3❤爬虫主体半自动(已知网页源码),全自动5❤实施3 爬取协议读取header>> 网址嵌入 >>匹配正则>> 输出组织结果...原创 2020-05-16 10:28:49 · 152 阅读 · 0 评论