python
Mr.Jcak
这个作者很懒,什么都没留下…
展开
-
给plt.axvline设置图例(label)
plt.axvline的其中一个参数是label,用于给这条垂直线设置标签。但加上后就是不显示这个这个图例,代码如下:sns.kdeplot(data)plt.axvline(-2, color='r', linestyle='--', label='0.9')plt.show()原因会因为没有加这一句:plt.legend()加上后图例即可正确显示sns.kdeplot(data)plt.axvline(-2, color='r', linestyle='--', l.原创 2021-03-24 12:09:23 · 10905 阅读 · 2 评论 -
FGSM(Fast Gradient Sign Method)python实现
有现成的库cleverhans可以调用https://github.com/cleverhans-lab/cleverhans这个库是用tensorflow实现的,但也实现了pytorch版本因为我调用的是pytorch版本,我接下来大概讲一下如何使用他们给出了一个调用pytorch版本的例子:https://github.com/cleverhans-lab/cleverhans/blob/master/tutorials/torch/cifar10_tutorial.py代码如下原创 2021-02-26 23:05:02 · 1509 阅读 · 2 评论 -
shrinkage LDA的python实现
https://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.htmlsklearn.discriminant_analysis.LinearDiscriminantAnalysis(*, solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=Fal原创 2020-11-20 10:30:01 · 374 阅读 · 0 评论 -
python将数据写入Excel
import xlsxwriterworkbook = xlsxwriter.Workbook('D:\data.xlsx', {'nan_inf_to_errors': True}) #创建一个Excel文件worksheet = workbook.add_worksheet() #创建一个sheettitle = [U'1',U'2',U'3',U'4',U'5',U'6',U'7',U'8',U'9',U'10'] #表格titleworksheet..原创 2020-11-14 11:19:32 · 1029 阅读 · 0 评论 -
python 绘制功率谱密度图 plt.psd
功率谱密度图以横轴为频率,纵轴为功率密度,表示信号功率密度随着频率的变化情况python绘制功率谱密度:matplotlib.pyplot.psd(x, NFFT=256, Fs=2, Fc=0, detrend=mlab.detrend_none, window=mlab.window_hanning, noverlap=0, pad_to=None, sides='default', scale_by_freq=None, return_line=None, **kwargs)原创 2020-08-04 21:26:03 · 12817 阅读 · 3 评论 -
python计算PR曲线sklearn.metrics.precision_recall_curve
PR曲线实则是以precision(精准率)和recall(召回率)这两个为变量而做出的曲线,其中recall为横坐标,precision为纵坐标。设定一系列阈值,计算每个阈值对应的recall和precision,即可计算出PR曲线各个点。precision=tp/(tp+fp)recall=tp/(tp+fn)可以用sklearn.metrics.precision_recall_curve计算PR曲线from sklearn.metrics import precis...原创 2020-08-04 19:15:00 · 21643 阅读 · 10 评论 -
python计算ROC曲线和面积AUC
ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真正率(也就是灵敏度)(True Positive Rate,TPR)为纵坐标,假正率(1-特效性)(False Positive Rate,FPR)为横坐标绘制的曲线。通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,从而可以绘制ROC曲线。纵坐标:真正率(True Positive Rate , TPR)或灵敏度(sensitivity)TPR = TP /(TP + FN) (正样本预测结果数 / 正样本实际数)原创 2020-08-04 16:16:20 · 4445 阅读 · 0 评论 -
Windows下安装scikit-learn
在安装sklearn前,首先确保安装了Numpy、Scipy和matplotlib安装Numpy:首先到https://pypi.org/project/numpy/#files下载安装包注意文件的版本,如“numpy-1.19.1-cp36-cp36m-win_amd64.whl”表示该文件适用于widows操作系统下64位的Python3.6安装numpy:Win+R,输入cmd,打开命令提示符窗口,激活环境(这一步因人而异,比如我要在tensorflow环境中安装sklearn,就先输原创 2020-08-02 11:39:22 · 631 阅读 · 0 评论 -
pandas取某一索引的数据
pandas.DataFrame.take(index)返回给定位置索引中的元素。注意上面的index是元素的实际位置举个例子:myList = [['a', 10, 1.1], ['b', 20, 2.2], ['c', 30, 3.3], ['d', 40, 4.4]]df1 = pd.DataFrame(data = myList)print(df1.take([2,3]))输出:c 30 3.3d 40 4.4即输出第3和第4个元素...原创 2020-07-30 21:59:09 · 2616 阅读 · 0 评论 -
python assert函数
assert expression , argumentsarguments可选,当expression为真时正常执行程序,当expression为假时执行argumentsassert1==1 # 条件为 true 正常执行assert1==2,'1 不等于 2'Traceback(most recent call last): File"<stdin>",line1,in<module>AssertionError:1...原创 2020-07-23 10:03:35 · 636 阅读 · 0 评论 -
python实现随机乱序/洗牌
import randomrandom.shuffle(a) # a是一个向量原创 2020-07-22 10:32:30 · 889 阅读 · 0 评论 -
python glob.glob() 函数
用于匹配文件路径,返回所有匹配的文件路径列表。print (glob.glob(r"D:\*.png")匹配符包括“*”、“?”和"[]",其中“*”表示匹配任意字符串,“?”匹配任意单个字符,[0-9]与[a-z]表示匹配0-9的单个数字与a-z的单个字符。...原创 2020-07-22 10:26:38 · 8048 阅读 · 0 评论 -
python butter带通滤波器滤波出来的信号有NAN值或者分类效果极差
在使用scipy.signal.butter带通滤波器对信号滤波后,信号值全变为NAN,或者就算信号没有变为NAN,送入分类器的分类效果也极差解决方法:带通滤波器的阶数设置得太高了,需要设低一些原创 2020-07-10 21:28:06 · 2094 阅读 · 3 评论 -
python找出NAN值所在处
np.isnan()会返回一个bool矩阵原创 2020-07-10 21:15:17 · 4325 阅读 · 0 评论 -
python求散点曲线下方面积
假设y=[1,2,3,4,2,3,1,4,2,3]是一条散点曲线,求y下方的面积:import numpy as np y=[1,2,3,4,2,3,1,4,2,3]np.trapz(y)原创 2020-03-14 22:21:10 · 4184 阅读 · 0 评论 -
numpy将ndarray数据拼接合并
np.vstack((a, b))假设a是[100,10]大小的ndarray数据,b也是[100,10]大小的ndarray数据,则np.vstack((a, b))会产生一个[200,10]大小的ndarray数据。原创 2020-03-12 22:07:07 · 7188 阅读 · 1 评论 -
python画PR曲线(precision-recall曲线)
使用python画precision-recall曲线的代码是:sklearn.metrics.precision_recall_curve(y_true, probas_pred, pos_label=None, sample_weight=None)注意:以上命令只限制于二分类任务precision(精度)为tp / (tp + fp),其中tp为真阳性数,fp为假阳性数。r...原创 2020-02-26 11:14:22 · 29689 阅读 · 0 评论 -
python的print函数输出带颜色字体
格式:print('\033[显示方式;前景色;背景色m 需要显示的文字 \033[0m')其中"\033[显示方式;前景色;背景色m"是开头部分,"\033[0m"是结尾部分说明:开头部分有三个参数:显示方式,前景色(也就是字体色),背景色是可选参数,可以只写其中的某一个; 由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别...原创 2020-02-13 23:54:01 · 2482 阅读 · 0 评论 -
TypeError: 'numpy.int64' object is not iterable ,'int' object is not iterable
想用一个list来动态地增加numpy类型数据,如下面的代码所示,发现报错TypeError: 'numpy.int64' object is not iterablea = []b = np.array([1,2,3])a.extend(b[0])a.extend(b[1])a.extend(b[2])print(a)于是将numpy数据转为list类型,如下所示:a...原创 2020-01-11 11:09:41 · 26577 阅读 · 1 评论 -
TypeError: 'numpy.ndarray' object is not callable
取ndarray的某几个数,若写为:a = np.array([0,1,2,3,4,5,6])index = np.array([1,2,3])b = a(index)print(b)则会报错TypeError: 'numpy.ndarray' object is not callable正确写法为:a = np.array([0,1,2,3,4,5,6])index ...原创 2020-01-09 16:19:32 · 13434 阅读 · 0 评论 -
Python删除文件夹和建立文件夹
import osimport shutilif os.path.isdir(dir): #判断文件夹dir是否存在 shutil.rmtree(dir, True) #删除文件夹diros.mkdir(dir) #建立文件夹dir原创 2020-01-05 22:23:01 · 181 阅读 · 0 评论 -
python获取依赖包和安装依赖包
获取依赖包:第一种方法:获取环境中所有安装的包打开命令提示符,在某条路径下输入pip freeze > ./requirements.txt这时就会生成一个requirements.txt文件第二种方法:根据某一个项目的import语句来生成依赖打开命令提示符,将路径切换到需要生成依赖的项目的根目录下,依次输入:pip install pipreqspipreqs...原创 2019-05-22 23:40:59 · 17712 阅读 · 0 评论 -
python生成和导入pyc文件
生成pyc文件:import compileallcompileall.compile_dir("/file_path")/file_path文件夹包含了所有要生成pyc格式的py文件运行完后会在/file_path下生成一个__pycache__目录,存放所有生成的的pyc文件导入pyc文件:生成的pyc文件的文件名一般为***.cpython-36.pyc。pyc文件可...原创 2019-05-22 14:28:39 · 10967 阅读 · 1 评论 -
Python找出某元素的索引下标
方法:list.index(‘xxx’) L = ['a', 'b', 'c']index = L.index('c')print(index) # 输出2原创 2018-11-15 16:45:42 · 7724 阅读 · 1 评论 -
设置numpy的随机种子
np.random.random([])可以生成随机数矩阵,有时候我们想每次生成的随机数矩阵都一样,这时只需在前面加一句np.random.seed(0)即可,如:np.random.seed(0)a=np.random.random([2,2])当然,随机种子不一定为0,可以自己设置...原创 2019-05-29 15:49:29 · 23206 阅读 · 1 评论 -
sklearn.decomposition.FastICA实现FastICA算法
关于sklearn.decomposition.FastICA的介绍http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.FastICA.htmlimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.d...原创 2019-05-29 17:13:47 · 5973 阅读 · 3 评论 -
make_moons函数
生成半环形数据sklearn.datasets.make_moons(n_samples=100, shuffle=True, noise=None, random_state=None)参数:n_samples:整数型,可选,默认为100,产生的样本点的数量 shuffle:布尔型,可选填(默认为True),是否对样本进行重新洗牌 noise:浮点型or N...原创 2019-07-20 16:39:55 · 2956 阅读 · 0 评论 -
np.random.choice用法
numpy.random.choice(a, size=None, replace=True, p=None)返回:从[0,a)中以概率p采样size个数,replacement 代表的意思是抽样之后还放不放回去如:>>> np.random.choice(5, 3)array([0, 3, 4])>>> np.random.choice(...原创 2019-09-12 16:13:55 · 419 阅读 · 0 评论 -
python获取当前文件路径
路径包含文件名:import sysprint(sys.argv[0])输出/***/***/***.py路径不包含文件名:以下三种方式输出的结果一样import osprint(os.getcwd())print(os.path.abspath('.'))print(os.path.abspath(os.curdir))输出/***/***/***...原创 2019-05-21 10:04:03 · 20239 阅读 · 0 评论 -
python复制之坑
在python中想要复制一个变量a的值,可以直接b=a,但这种复制方法a改变时b也会一起改变,因为a,b同时指向一个变量,b只是a的另一个名字而已,看一个例子:a = [1,2,3]b = aa[0] = 0print(b) # [0, 2, 3]如果想复制a的值并保存在独立的一个变量中,应该用copy模块:import copya = [1,2,3]b = copy.c...原创 2019-03-24 10:33:05 · 194 阅读 · 0 评论 -
Python实现一个数组除以一个数
如果直接用python的一个list除以一个数,会报错:a = [1.0, 1.0, 1.0]c = a/3print(c)TypeError: unsupported operand type(s) for /: 'list' and 'int'使用Numpy可以轻松做到:import numpy as npa = np.array([1,1,1])c = a/3...原创 2018-11-18 10:21:13 · 58032 阅读 · 1 评论 -
Python获得一篇文档的不重复词列表并创建词向量
获得一篇文档的不重复词列表:def loadDataSet(): postingList = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'], ...原创 2018-11-18 09:37:55 · 2262 阅读 · 1 评论 -
Python获得某个范围的的随机整数
numpy.random.randint(low, high=None, size=None, dtype='l')产生[low~high)范围内的整数,不包括highimport numpy as npa = np.random.randint(0, 2, 10)print(a) # [0 0 1 1 0 0 1 0 0 0] ...原创 2018-11-16 10:52:03 · 21407 阅读 · 1 评论 -
Python计算信息熵
计算信息熵的公式:n是类别数,p(xi)是第i类的概率假设数据集有m行,即m个样本,每一行最后一列为该样本的标签,计算数据集信息熵的代码如下:from math import logdef calcShannonEnt(dataSet): numEntries = len(dataSet) # 样本数 labelCounts = {} # 该数据集每个类别的频数...原创 2018-11-14 20:36:38 · 22692 阅读 · 4 评论 -
Python存储生成的决策树——pickle模块
假设通过训练样本生成的决策树为:{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}利用pickle模块可以存储和加载该决策树tree = {'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}def storeTree(in...原创 2018-11-15 17:12:26 · 1075 阅读 · 0 评论 -
Python判断变量类型
两种方法:一:L = ['a', 'b', 'c']print(isinstance(L, list)) #输出True二:L = ['a', 'b', 'c']print(type(L).__name__ == 'list') #输出True原创 2018-11-15 16:54:19 · 1417 阅读 · 0 评论 -
python读取图像矩阵文件并转换为向量
假设图像矩阵大小为32×32,将其转换为向量,首先创建1×1024的NumPy数组,然后打开给定的文件,循环读出文件的前32行,并将每行的头32个字符值存储在NumPy数组中import numpy as npdef img2vector(filename): returnVect = np.zeros((1, 1024)) fr = open(filename) ...原创 2018-11-13 19:36:13 · 9485 阅读 · 0 评论 -
python数据归一化
在机器学习中,往往需要归一化数据集,下面的公式可以把数据归一化到0~1区间:newvalue = (oldvalue - min)/(max - min)python实现的代码如下:def autoNorm(dataSet): minVals = dataSet.min(0) # 取每一列的最小值 maxVals = dataSet.max(0) # 取每一列的最大值...原创 2018-11-13 18:40:08 · 7212 阅读 · 6 评论 -
使用Matplotlib创建散点图
假设data是m行两列的训练样本,labels是m行一列的类标签,类标签一共有3类,分别用1、2、3表示,现将data用散点图表示出来,且不同类的样本有不同的颜色:import matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111) # 创建一个一行一列的图ax.scatter(data[:, 0], d...原创 2018-11-11 11:02:23 · 479 阅读 · 0 评论 -
python将数据集分成训练样本和类标签
这里假设 类标签为largeDoses, smallDoses, didntLike三类,假设训练样本有三个特征属性,类标签放在数据集的最后一列import numpy as npdef file2matrix(filename): # filename是文件保存地址 love_dictionary = {'largeDoses':3, 'smallDoses':2, 'did...原创 2018-11-10 12:35:28 · 12271 阅读 · 0 评论