![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
苏学算法
这个作者很懒,什么都没留下…
展开
-
Python 从 subprocess popen 运行的子进程中实时获取输出(shell 在 python 中执行)
有时候需要把 shell 命令在 python 中执行,如果使用的方式的话,标准输出只会打印在屏幕上,没办法赋给变量,这时候就可以用subprocess来实现。原创 2022-08-20 17:17:52 · 3319 阅读 · 0 评论 -
AUC计算python实现
#!/usr/bin/env python# coding=utf-8import numpy as npfrom sklearn.metrics import roc_curvefrom sklearn.metrics import aucdef auc_calculate(labels,preds,n_bins=100): postive_len = sum(labels) negative_len = len(labels) - postive_len tota原创 2021-12-16 11:29:44 · 1571 阅读 · 0 评论 -
tensorflow 对 label 做 mask
有时,需要对某些 label 做 mask#!/usr/bin/env python# coding=utf-8"""tf version: 1.15.0"""import tensorflow as tf# 维度 [batch_size, 1]label1 = tf.constant([[0.0], [1.0], [1.0]])label2 = tf.constant([[1.0],原创 2022-05-01 20:39:56 · 521 阅读 · 0 评论 -
tf.squeeze 和 tf.reduce_sum 区别
tf.squeeze 和 tf.reduce_sum 是可以起到一样的作用的直接上代码#!/usr/bin/env python# coding=utf-8"""tf version: 1.15.0"""import tensorflow as tf# 维度 [batch_size, 1]a = tf.constant([[1], [6], [11]])b1 = tf.squeeze(a, axis=1)b2原创 2022-05-01 19:42:05 · 251 阅读 · 0 评论 -
Python 的多个列表不能用连等于赋初值
a = b = []a.append(1)b.append(2)print aprint b[1, 2][1, 2]原创 2022-03-22 10:50:39 · 780 阅读 · 0 评论 -
Python中时间 & 时间戳之间的转换
使用python中的time模块,对时间的几种格式进行转换一、几个常用函数strptime(), 将 时间字符串 转换成 结构化时间 struct_time注意,结构化时间 是所有转换的 过渡格式import timetime_str = "2022-03-18 10:54:00"struct_time = time.strptime(time_str, '%Y-%m-%d %H:%M:%S')print(struct_time)time.struct_time(tm_year=20原创 2022-03-18 11:44:28 · 32917 阅读 · 0 评论 -
报错 ImportError: No module named xxx
ImportError: No module named xxx 是 Python 很常见的报错,一般就是2个原因没有该文件,例如使用 pip install tensorflow 即可解决目录层级不对,导致 import 报错,这种有时候很难解决情况 2 可以采用如下方式把你要 import 的包所在的目录层级写入系统路径即可,比如需要 import 的文件在执行文件的上一层,则按照如下写法即可import osthis_filename = __file__sys.path.appen原创 2022-03-16 21:45:22 · 2038 阅读 · 0 评论 -
numpy和matplotlib绘制直方图 histogram
一、matplotlib 自带函数实现matplotlib有一个简单的函数 plt.hist(a, bins=num_bins),可以直接绘制直方图,如下#!/usr/bin/env python# coding=utf-8import matplotlib.pyplot as pltimport numpy as np"""绘制直方图data:必选参数,绘图数据bins:直方图的长条形数目,可选项,默认为10normed:是否将得到的直方图向量归一化,可选项,默认为0,代表不归一化,原创 2022-03-14 17:03:33 · 8542 阅读 · 0 评论 -
python matplotlib 实时绘图
有时候,需要获取动态数据,并实时绘图。比如从串口读取数据等等import matplotlib.pyplot as pltax = [] # 定义一个 x 轴的空列表用来接收动态的数据ay = [] # 定义一个 y 轴的空列表用来接收动态的数据plt.ion() # 开启一个画图的窗口for i in range(100): # 遍历0-99的值 ax.append(i)原创 2022-02-20 18:28:17 · 4702 阅读 · 1 评论 -
pycharm正则表达式检索
一、用法比如检索以 a 开头的字符串a.*并打开正则表达检索开关参考Pycharm小技巧–使用正则进行查找和批量替换原创 2021-09-08 15:13:32 · 870 阅读 · 0 评论 -
Python 命名规范
1. 项目名称首字母大写+大写式驼峰,ProjectName2.模块名和包名全部小写+下划线驼峰module_namepackage_name3.类名称,异常首字母大写+大写式驼峰,class ClassName:ExceptionName4.全局变量、常量全部使用大写字母+下划线驼峰GLOBAL_VAR_NAMECONSTANT_NAME5.方法名,函数名,其余变量,参数,实例全部小写+下划线驼峰method_namefunction_nameinstance原创 2021-03-29 15:38:40 · 183 阅读 · 0 评论 -
论文绘图高清矢量图
之前试过 svg、tiff,最终…都不如 emf 格式好用,可以直接复制粘贴到 word 中,无限放大不失真,着实好用Matlab 可以直接使用菜单栏的 “导出设置”,导出为 emf 格式Python 的 Matlibplot 无法直接生成 emf,但是可以生成 svg,而后再用 lnkscape 把 svg 转为 emf 格式...原创 2021-03-11 16:23:01 · 667 阅读 · 0 评论 -
python保存大型 .mat 数据文件报错超出 IO 限制
python 保存 .mat 文件的大小是有限制的,似乎是 5G 以内,如果需要保存几十个 G 的数据的话,可以选用其他方式,比如 h5 文件import h5pydef h5_data_write(train_data, train_label, test_data, test_label, shuffled_flag): print("h5py文件正在写入磁盘...") save_path = "../save_test/" + "train_test_split_dat原创 2021-03-07 09:38:05 · 780 阅读 · 0 评论 -
Python 获取目录下的文件列表,并自然排序
方法 1>>> import os>>> fileList = os.listdir('TestDir')>>> fileList['test1.txt', 'test10.txt', 'test11.txt', 'test2.txt', 'test23.txt', 'test28.txt']>>> fileList.sort(key= lambda x:int(x[4:-4]))>>> fileList原创 2020-08-11 18:49:24 · 1350 阅读 · 0 评论 -
python matplotlib 设置标题、轴标签、刻度标签(ticker部分)
import numpy as npimport matplotlib.pyplot as pltplt.figure()x = np.arange(0,10,1) #这个函数的第三个参数表示的是步长,以此进行划分z = x**2y = np.linspace(1,10,10) #这个函数的第三个参数表示的是用几个点去划分,作为y的值plt.plot(x,z,color = 'red',linewidth=1.0,linestyle='--')#线颜色 线宽 线样式plt原创 2021-01-27 11:05:39 · 3880 阅读 · 0 评论 -
#!/usr/bin/env python 举例说明
一、原理脚本语言的第一行,#!/usr/bin/env python目的:指出该文件中的代码用什么可执行程序去运行#!/usr/bin/python3是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python3解释器;#!/usr/bin/env python3这种用法是为了防止操作系统用户没有将python3装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python3的安装路径(即在“环境变量”里面查找),再调用对应路径下的解释器程序完成操作。原创 2021-01-25 15:30:30 · 756 阅读 · 1 评论 -
python 报错 TypeError: ‘module‘ object is not callable
如下代码即报错import datetime as datethe_date = date(2020,5,2)print(the_date)TypeError: 'module' object is not callable顾名思义,就是把模块当作函数用了把import 这一行改为:from datetime import date即可原创 2021-01-06 20:48:19 · 622 阅读 · 0 评论 -
tensorboard可视化
一、主程序main.py"""参考:https://zhuanlan.zhihu.com/p/59986254Link: www.kaikai.aiGithub: github.com/loveunk这是一个完整的mnist分类demo,其中涉及的技术点包括:1. TensorFlow dataset minist的加载2. 数据直方图打印3. 数据归一化4. label数据的 one hot vectors转换5. 数据集切分(train、test)6. CNN 模型创建7.原创 2021-01-06 17:29:37 · 224 阅读 · 0 评论 -
卡方检验(Chi_square_test): 原理及python实现
参考:卡方检验(Chi_square_test): 原理及python实现原创 2020-12-29 18:10:01 · 1624 阅读 · 1 评论 -
joblib加载模型报错 ModuleNotFoundError: No module named ‘lib‘
文件目录树如下:som-- train(保存模型) -- lib -- minisom.py -- predict(加载模型)报错信息:Traceback (most recent call last): File "D:/SOM/self_organizing_maps/predict/test_som_predict.py", line 55, in <module> model = joblib.load(filename=file_path) Fi原创 2020-12-29 12:44:47 · 6097 阅读 · 0 评论 -
python collections.OrderedDict() 用法
Python中的字典对象可以以“键:值”的方式存取数据。OrderedDict是它的一个子类,实现了对字典对象中元素的排序。注意,OrderedDict的 Key 会按照插入的顺序排列,不是Key本身排序:比如下面比较了两种方式的不同:import collections print 'Regular dictionary:'d={}d['a']='A'd['b']='B'd['c']='C'for k,v in d.items(): print k,v print '\nO原创 2020-12-17 15:12:36 · 3019 阅读 · 5 评论 -
Python @lazyprop 装饰器
安装pip install lazyprop例子1from lazyprop import lazypropclass Foo(object): def __init__(self): self.load_count = 0 @lazyprop def lazy(self): self.load_count += 1f = Foo()f.lazyf.lazyf.lazyprint(f.load_count)输出:1原创 2020-12-16 18:19:01 · 216 阅读 · 0 评论 -
python中模块的__all__属性
参考:python中模块的__all__属性原创 2020-12-16 15:54:10 · 162 阅读 · 0 评论 -
Python Luigi 的简单使用示例
Luigi是用于工作流管理的Python工具。它是在Spotify开发的,旨在帮助构建批处理作业的复杂数据管道。1. 安装 Luigipip install luigi2. 简单例子有两个核心概念可用来了解如何将Luigi应用于我们自己的数据管道:任务和目标。任务是工作的一个单元,通过扩展类luigi.Task并覆盖一些基本方法来设计。任务的输出是目标,可以是本地文件系统上的文件,Amazon S3上的文件,数据库中的某些数据等。依赖关系是根据输入和输出定义的,即如果TaskB依赖TaskA,则原创 2020-12-16 15:38:05 · 3670 阅读 · 0 评论 -
Python getattr() 函数 妙用:从函数名符串到函数引用的映射
描述getattr() 函数用于返回一个对象属性值。语法getattr 语法:getattr(object, name[, default])参数object – 对象。name – 字符串,对象属性。default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。返回值返回对象属性值。实例class A(object): def set(self, a, b): print(a+b) geta原创 2020-12-14 16:18:47 · 696 阅读 · 2 评论 -
Python super() 函数
super() 函数是用于调用父类(超类)的一个方法。super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。示例代码:super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类 FooChild 的对象转换为类 FooParent 的对象#!/usr/bin/原创 2020-12-11 11:27:09 · 119 阅读 · 0 评论 -
yaml文件解析详解
参考:yaml文件解析详解原创 2020-12-10 11:08:18 · 323 阅读 · 0 评论 -
(机器学习)sklearn降维算法PCA(用几个小案例详解PCA降维)
参考:(机器学习)sklearn降维算法PCA(用几个小案例详解PCA降维)原创 2020-12-06 21:55:27 · 286 阅读 · 0 评论 -
CTR预估模型演进笔记
一、Logistic Regression,LR逻辑回归作为广义线性模型的一种,假设 yyy 服从伯努利分布。其概率质量函数为:fX(x)=px(1−p)1−x={p if x=1q if x=0f_{X}(x)=p^{x}(1-p)^{1-x}=\left\{\begin{array}{ll}p & \text { if } x=1 \\q & \text { if } x=0\end{array}\right.fX(x)=px(原创 2020-11-25 14:36:42 · 385 阅读 · 0 评论 -
mac安装xlearn遇到的cmake问题
pip install Cmakepip insatll xlearn原创 2020-11-22 21:16:47 · 149 阅读 · 0 评论 -
python中pandas产生模拟数据并写入 csv 文件
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdef wgn(x, snr=10): """ 给数据 x 添加指定信噪比为 SNR dB 的高斯噪声 """ np.random.seed(100) snr = 10 ** (snr / 10.0) xpower = np.sum(x ** 2) / len(x) npower = xpower / snr原创 2020-11-08 20:54:36 · 506 阅读 · 0 评论 -
Pycharm使用 Jupyter
1. 选择 Configure jupyter server2. 在 Pycharm 的 Terminal 输入jupyter notebook3. 将 url 复制到本文第一个图的 “configured server” 框内原创 2020-11-06 11:32:24 · 461 阅读 · 0 评论 -
numpy.array 二维矩阵删除特定的某些行或者列
import numpy as npa = np.array([[0,2, 0], [0,5, 0], [0,8, 0]])del_index = []for col in range(3): if a[0][col] == 0: del_index.append(col)print(del_index)a = np.delete(a, del_index, axis = 1) # axis=1 删除列,axis=0原创 2020-10-18 11:24:58 · 3846 阅读 · 0 评论 -
使用Keras中的 LSTM 模型进行时间序列预测
参考:使用Keras中的 LSTM 模型进行时间序列预测原创 2020-10-17 21:34:13 · 577 阅读 · 0 评论 -
keras训练完模型,为什么对训练集进行evaluate和训练时的loss完全不一样
参考:keras训练完模型,为什么对训练集进行evaluate和训练时的loss完全不一样?白训练了吗?model.evaluate() gives a different loss on training data from the one in training process #6977原创 2020-10-14 22:28:06 · 1368 阅读 · 0 评论 -
pycharm调试:进入调用函数后返回
用pycharm时,我们都是按住Ctrl,然后鼠标点击对应的方法,即可查看当前方法调用的函数。要想返回到调用原始函数处,按时alt+←也可以在菜单栏的view中勾选toolbar,然后点击工具栏中左箭头返回到调用函数处。...原创 2020-10-13 10:12:29 · 951 阅读 · 0 评论 -
连续小波变换(Continuous wavelet transform, CWT)Python 实现
"""连续小波变换 CWT参考论文:https://www.mdpi.com/2076-3417/8/7/1102/htmlmorlet 小波在轴承故障诊断中比较常用"""import numpy as npimport pywtimport matplotlib.pyplot as pltimport pandas as pdimport mathimport osdef CWT(data, fs=25600): t = np.arange(0, len(data)) /原创 2020-10-12 21:59:36 · 7091 阅读 · 26 评论 -
函数内部调用其他函数,函数名用字典存储(选择功能函数时常常采样)
def add(a, b): return a + bdef multi(a, b): return a * bdef operate(a, b, method): method_dict = {"add":add, "multi": multi} res = method_dict[method](a, b) return resif __name__ == "__main__": res1 = operate(2, 3, "multi")原创 2020-10-09 20:22:14 · 162 阅读 · 0 评论 -
python读取.mat 文件中的结构体数据
结构体形式如下:通用的读取方式:X = loadmat(r"filename")data_all = X['bearing'] # bearing为结构体的名称print (data_all.shape)结果data_all的规模竟然是(1,1),6个字段的矩阵竟然都聚集到了一起。参考:https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html#scipy.io.loadmat正确代码:data_原创 2020-10-06 15:56:04 · 841 阅读 · 0 评论 -
Python 读取文件夹下所有的文件
path = 'H:/complete_Tool/_Tool_004_2019_09_07/tool_004_vibration/'raw_files= os.listdir(path) # 得到文件夹下的所有文件名称raw_files.sort(key=lambda ele:(ele[11])) # 根据文件名排序files = []for file in raw_files: if file.endswith('.tdms'): files.append(fi原创 2020-10-04 14:52:59 · 445 阅读 · 0 评论