python中常见类库及使用总结

1.from matplotlib import pyplot

 Matplotlib是python的一个绘图库,是Python中最常用的可视化工具之一。
 matplotlib是受MATLAB的启发构建的,matplotlib有一套完全仿照MATLAB的函数形式的绘图接口。
 matplotlib.pyplot模块中,这套函数接口方便MATLAB用户过度到matplotlib包。

简述一下绘图过程:

fig = pyplot.figure()  #在任何绘图之前,需要一个Figure对象。Figure可以为面板,所有的图像都位于figure中,且一个图像只能有一个figure对象。
ax = fig.add_subplot(111)#子图,在figure对象下创建一个或多个subplot对象用于绘制。参数:行数,列数,第几个
ticks = np.arange(0, 14, 1)
ax.set_xticks(ticks) #设置坐标轴刻度
ax.set_yticks(ticks) #设置坐标轴刻度
names = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']
ax.set_xticklabels(names)#设置刻度的显示文本,rotation旋转角度,fontsize字体大小
ax.set_yticklabels(names)#设置刻度的显示文本,rotation旋转角度,fontsize字体大小
pyplot.show() #打开窗口

这里只介绍了简单的一种绘图方法,还有很多绘图方法,绘制各种图形,可以在官网进行学习。官网地址

2.from pandas import read_csv

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。用于数据挖掘和数据分析,同时也提供数据清洗功能。pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。
pandas 两个主要的数据结构:
1.Series
Series是一种类似于一维数组的对象。Series和ndarray之间的主要区别在于Series之间的操作会根据索引自动对齐数据。
pd.Series(list,index=[ ]),第二个参数是Series中数据的索引,可以省略。

import numpy as np, pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
print(s1)   #由于我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引
0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9

2.DataFrame
DataFrame是一个表格型的数据类型,每列值类型可以不同,是最常用的pandas对象。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。
DataFrame的创建
pd.DataFrame(data,columns = [ ],index = [ ]):columns和index为指定的列、行索引,并按照顺序排列。

import pandas as pd
data = {'state': ['i', 'have', 'many', 'secrets', 'dont', 'tell','you'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003,2004],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2,4.8]}
df= pd.DataFrame(data)

参考文章

pandas库是一个很强大的库,小白一枚只是记录一下自己遇到的方法,还有很多方法没有涉及,遇到了不懂的可以去官网查询。同时发现一个前辈总结的很全面,可以进行参考学习

3.set_option用法

set_option从pandas导入,用于设置dataframe的输出显示。
导入方式为:
from pandas import set_option
常用的使用有:
(1)pd.set_option(‘expand_frame_repr‘, True)
True就是可以换行显示。设置成False的时候不允许换行
(2) pd.set_option(‘display.max_rows‘, 10)
pd.set_option(‘display.max_columns’, 10)
用来设置显示的最大的行数和列数,这里指的是多少个dataFrame的列。如果超过设置的行数就显示省略号。如果输出比较多的情况可以避免输出很乱。
pd.set_option(‘display.max_rows‘, None)
pd.set_option(‘display.max_columns‘, None)
这样会显示所有行和列
(3) pd.set_option(‘precision’, 2)
设置显示小数点后的位数
set_option的使用方法为:

from pandas import read_csv
from pandas import set_option

filename='housing.csv'
data=read_csv(filename,delim_whitespace=True)#CSV文件是使用空格键做分隔符的,因此读入CSV文件时指定分隔符为空格键
set_option('display.width',120)#设置输出宽度
set_option('precision',1)#设置显示小数点后一位
print(data.head(30))#输出

显示的结果如图所示

4.from pandas.plotting import scatter_matrix

可视化中用于绘制散点矩阵图。对高维数据进行可视化,一个常用的方法是散点图。对于具有2个以上维度的数据,可以使用散点图矩阵(scatterplot matrix),其中每一个视图是某2个维度的散点图。因为当欲同时考察多个变量间的相关关系时,若一一绘制它们间的简单散点图,十分麻烦。此时可利用散点图矩阵来同时绘制各自变量间的散点图,这样可以快速发现多个变量间的主要相关性。
绘制过程如下:

from pandas import read_csv
from pandas import set_option
from pandas.plotting import scatter_matrix
from matplotlib import pyplot

filename='housing.csv'
names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS',
         'RAD', 'TAX', 'PRTATIO', 'B', 'LSTAT', 'MEDV']
data=read_csv(filename,names=names,delim_whitespace=True)
scatter_matrix(data)
pyplot.show()

结果为:

5.from sklearn.preprocessing import StandardScaler

StandardScaler是sklearn中提供的数据预处理功能中的一个。StandardScaler的功能是去均值和方差归一化。且是针对每一个特征维度来做的,而不是针对样本。。
为什么要进行归一化?
1.归一化后加快了梯度下降求最优解的速度;
如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
2.归一化有可能提高精度;
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

概率模型(树形模型)不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。而像Adaboost、SVM、LR、Knn、KMeans之类的最优化问题就需要归一化。

StandardScaler原理
将数据整理后变为标准化正态分布。处理后均值为0,方差为1。转化公式为:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

使用方法为:

from sklearn.preprocessing import StandardScaler  # 标准化工具
import numpy as np
 
x_np = np.array([[1.5, -1., 2.],
                [2., 0., 0.]])
scaler = StandardScaler()
x_train = scaler.fit_transform(x_np)
print('矩阵初值为:{}'.format(x_np))
print('该矩阵的均值为:{}\n 该矩阵的标准差为:{}'.format(scaler.mean_,np.sqrt(scaler.var_)))
print('标准差标准化的矩阵为:{}'.format(x_train))

StadardScaler提供了fit和transform及fit_transform方法。fit用于计算训练数据的均值和方差, 后面就会用均值和方差来转换训练数据;transform只是进行转换,只是把训练数据转换成标准的正态分布;fit_transform方法是fit和transform的结合,不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转换成标准的正态分布。
fit_transform(X_train) 意思是找出X_train的均值和​​​​​​​标准差,并应用在X_train上。这时对于X_test,我们就可以直接使用transform方法。因为此时StandardScaler已经保存了X_train的均值和标准差。

注:
根据对之前部分fit的整体指标,对剩余的数据(restData)使用同样的均值、方差、最大最小值等指标进行转换transform(restData),从而保证part、rest处理方式相同。
如果fit_transfrom(partData)后,使用fit_transform(restData)(restData表示用于训练的partData数据的剩余数据)而不用transform(restData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异

结果为:

矩阵初值为:[[ 1.5 -1.   2. ]
                       [ 2.   0.   0. ]]
该矩阵的均值为:   [ 1.75 -0.5   1.  ]
 该矩阵的标准差为:[0.25 0.5  1.  ]
标准差标准化的矩阵为:[[-1. -1.  1.]
                                        [ 1.  1. -1.]]

sklearn的标准化工具实例化后会有两个属性,一个是mean_(均值),一个var_(方差)。

参考文章:

6.from sklearn.model_selection import train_test_split

train_test_split用于划分训练集和测试集。train_test_split是交叉验证中常用的函数。
train_X,test_X,train_y,test_y = train_test_split(train_data,train_target,test_size=0.3,random_state=5)

train_data为所要划分的样本整体,即输入X
tain_target为要划分的样本集的属性或输出,即Y
test_size为样本占比
random_state是随机数种子。默认为false。如果不设置random_state会使每次划分的比例相同但划分的结果不同。如按比例划分本次测试集为第1,3,5条数据。下次按比例划分还是三个测试集,但可能会变为2,3,4条数据。设置随机数种子可以保证在需要重复试验的时候,保证得到一组一样的随机数。

import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33)
X_train
array([[2, 3],
       [6, 7],
       [8, 9]])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值