一、python参数
1.
1.accuracy_score()函数
分类正确率分数,函数返回一个分数,这个分数或是正确的比例,或是正确的个数。
accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None):
- y_true:正确输出值。y_pred:经过网络的预测值,分类器输出值。
- y_treue和y_pred可以选择的类型一样,包括:一维数组、矩阵。
- normalize:normalize是布尔类型参数,如果是False的话,函数就返回样本分类的正确数量。如果是True的话,返回分类正确率。默认情况下数True的,也就是返回正确率。
- sample_weight:样本的权重,默认是None。
2、X.var() (求得是每一列的方差)、
3 .abs() 数字取绝对值
4. data.describe() :描述性统计
# data.describe()
data.describe([0.01,0.1,0.25,.5,.75,.9,.99]).T
5.loc和iloc的用法和区别
loc——通过行标签索引行数据
iloc——通过行号索引行数据
print(data.iloc[0])
print(data.loc["A"])
二、numpy的函数
import numpy as np
1.np.median() : 求中位数
4. np.mean()平均值
2.np.linspace(0.05,1,19):
求0.05与1之间随机取19个数,包括0.05和1
3.np.unique() :求出数据的不同类别
三、pandas
import pandas as pd
1、pd.DataFrame()
2.data.drop_duplicates(inplace=True):去除重复值
3、.fillna()会填充nan数据,返回填充后的结果。
如果希望在原DataFrame中修改,则把inplace设置为True
- inplace参数的取值:True、False
True:直接修改原对象
False:创建一个副本,修改副本,原对象不变(缺省默认)
4 .isnull()和.notnull()
- data.isnull() ;空值为True,非控制为Fasle
data .isnull().sum():所有空值的个数总和
data[data.isnull() ]:所有空值的列表
data[data.isnull() ].index :所有空值的索引
- .notnull():空值为Fasle,非控制为True
5、pd.qcut() :分箱
pd.qcut,基于分位数的分箱函数,本质是将连续型变量离散化只能够处理一维数据。返回箱子的上限和下限
参数q:要分箱的个数
参数retbins=True来要求同时返回结构为索引为样本索引,元素为分到的箱子的Series
现在返回两个值:每个样本属于哪个箱子,以及所有箱子的上限和下限
pd.cut((x, bins, right=True, labels=None)
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise') #0.23.4
x:被切分的类数组(array-like)数据,必须是1维的(不能用DataFrame);
bins:bins是被切割后的区间(或者叫“桶”、“箱”、“面元”)
right:bool型参数,默认为True,表示是否包含区间右部。比如如果bins=[1,2,3],right=True,则区间为(1,2],(2,3];right=False,则区间为(1,2),(2,3)。
labels:给分割后的bins打标签,比如把年龄x分割成年龄段bins后,可以给年龄段打上诸如青年、中年的标签。labels的长度必须和划分后的区间长度相等,比如bins=[1,2,3],划分后有2个区间(1,2],(2,3],则labels的长度必须为2。如果指定labels=False,则返回x中的数据在第几个bin中(从0开始)。
retbins:bool型的参数,表示是否将分割后的bins返回,当bins为一个int型的标量时比较有用,这样可以得到划分后的区间,默认为False。
precision:保留区间小数点的位数,默认为3.
include_lowest:bool型的参数,表示区间的左边是开还是闭的,默认为false,也就是不包含区间左部(闭)duplicates:是否允许重复区间。有两种选择:raise:不允许,drop:允许。
返回值
out:一个pandas.Categorical, Series或者ndarray类型的值,代表分区后x中的每个值在哪个bin(区间)中,如果指定了labels,则返回对应的label。
bins:分隔后的区间,当指定retbins为True时返回。
将ages平分成5个区间
ages = np.array([1,5,10,40,36,12,58,62,77,89,100,18,20,25,30,32])
pd.cut(ages, 5)
[(0.901, 20.8], (0.901, 20.8], (0.901, 20.8], (20.8, 40.6], (20.8, 40.6], ..., (0.901, 20.8], (0.901, 20.8], (20.8, 40.6], (20.8, 40.6], (20.8, 40.6]]
Length: 16
Categories (5, interval[float64]): [(0.901, 20.8] < (20.8, 40.6] < (40.6, 60.4] < (60.4, 80.2] < (80.2, 100.0]]
6、pd.read_csv()方法来读取csv文件
data = pd.read_csv(r".\Narrativedata.csv",index_col=0)
- index_col是read_csv中的一个参数。用来指定表格的索引值
- 在默认为None的时候,pandas会自动将第一列作为索引,并额外添加一列。所以大多我们会使用index_col=0,直接将第一列作为索引,不额外添加列。
8.pd.concat():将两个列表合并
axis=1,表示跨行进行合并,也就是将量表左右相连,如果是axis=0,就是将量表上下相连
pd.concat([data,pd.DataFrame(result)],axis=1)
9、.sample()
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)[source]
#n 要抽取的行数
df.sample(n=3,random_state=1) #提取3行数据列表
frac
#抽取行的比例
#例如frac=0.8,就是抽取其中80%。
df.sample(frac=0.8, replace=True, random_state=1)
#replace
#是否为有放回抽样,
#True:有放回抽样
#False:未放回抽样
#True:取行数据后,可以重复放回后再取
#False:取行数据后不放回,下次取其它行数据
#注意:当N>总数据容量,replace设置为值时有效
三、matplotlib 函数
import matplotlib.pyplot as plt
#画布的尺寸1行5列,figsize=(30,6)画布大小
plt.subplots(1,5,figsize=(30,6))
#设置标题
plt.set_title(title)
#横坐标标签和纵坐标标签
plt.set_xlabel("Training examples")
plt.set_ylabel("Score")
#显示网格作为背景,不是必须
plt.grid()
# 划线的命令
plt.plot(train_sizes, np.mean(train_scores, axis=1), 'o-', color="r",label="Trainingscore")
plt.legend(loc="best")
四、random模块
1、random.sample()
random.sample用于截取列表的指定长度的随机数,但是不会改变列表本身的排序。
import random
list = [0,1,2,3,4]
rs = random.sample(list, 2)
print(rs)
print(list)
[3, 4]
[0, 1, 2, 3, 4]
我们要生成0~N之间的不重复的指定长度L的随机整数,可以使用:random.sample(range(0, N), L),例如我要生成0~20之间的20个随机整数:
a = random.sample(range(0, 20), 20)
>>> a
[9, 12, 11, 7, 8, 10, 6, 13, 2, 16, 0, 1, 14, 18, 4, 15, 3, 19, 17, 5]
五、保存和调用
1、dump()方法和 load()方法
-
pickle.dump(obj, file, protocol)
注释:
obj——序列化对象,将对象obj保存到文件file中去;
file——file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象;
protocol——序列化模式,默认是 0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)。 -
pickle.load(file)
注释:
反序列化对象,将文件中的数据解析为一个python对象。
file中有read()接口和 readline() 接口
import pickle
fw = open("pickleFileName.txt", "wb")
pickle.dump("try", fw)
fr = open("pickleFileName.txt", "rb")
result = pickle.load(fr)