数据分析的常用数据库
numpy,pandas,matplotlib是我们进行数据分析的常用数据库
数据库的下载
进入终端使用pip install numpy命令进行数据库的安装以及下载
numpy数据库的使用
首先学习numpy的数组创建,我们可以通过以下方法进行数组的创建
1、np.array( )可以进行数组的创建()内部输入正确的数组或者是元组,经过输出,元素间用空格分割
import numpy as np
x = np.array([[1,2],[3,4]])
print(x)
输出结果
2、np.arrange(n)生成0至n-1的数组
3、np.ones(shape)生成一个全1数组,shape为元组类型
4、np.zeros(shape)生成一个全0数组,shape为元组类型
5、np.full(shape,val)生成一个数组,全为val
6、np.eye(shape)生成一个n*n的单元对角矩阵
import numpy as np
a = np.ones((4, 3))
print(a)
b = np.zeros((4, 3))
print(b)
c = np.arange(5)
print(c)
d = np.full((4, 3),5)
print(d)
e = np.eye(3)
print(e)
f = np.ones((2, 3, 4))
print(f)
输出结果如下
7、np.ones_like(a)根据a生成一个全为1的数组
8、np.zeros_like(a)根据a生成一个全为0的数组
9、np.full_like(a,val)根据a生成一个全为val的数组
10、np.linspace()根据起止数据等间距的填充
11、np.concatenate()将两个或者多个数组进行合并
import numpy as np
a = np.ones((4, 3))
print("a:", a)
b = np.zeros((4, 3))
print("b:", b)
g = np.ones_like(a)
print("ones", g)
g = np.zeros_like(a)
print("zeros:", g)
g = np.full_like(a, 5)
print("full:", g)
g = np.linspace(1, 10, 4)
print("linspace:", g)
g = np.linspace(1, 10, 4,endpoint=False)
print("linspace(endpoint):", g)
g = np.concatenate((a, b))
print("concatenate:", g)
输出如下
数组变换
1、x.reshape(shape)不改变内部元素,只改变形状(要求元素个数相同)
2、x.resize(shape)和reshape功能一致,只是resize可以同时改变原数组
3、x.swapaxes(ax1,ax2)交换两个维度
4、x.f;attten()返回折叠后的一维数组,原数组不变
import numpy as np
a = np.ones((4, 3))
print("a:", a)
g = a.reshape((3, 4))
print("reshpe(a):", a)
print("reshape", g)
a.resize((3, 4))
print("resize", a)
g = a.flatten()
print("flatten(a):", a)
print("flatten:", g)
a = a.swapaxes(0,1)
print("swapaxes:", a)
输出结果
数组的类型变换
数组内数据类型变换 new_a = a. astype(new_type)
import numpy as np
a = np.ones((2,3,4),dtype = np.int32)
print("a:",a)
b = a.astype(np.float32)
print("a:",a)
print("b:",b)
输出结果如下
数组---->列表
ls = a.tolist()
ndarray数组的操作
索引和切片(切片终止编号不含)
import numpy as np
a = np.array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
print(a[2])
print(a[0:9:2])
输出结果如下:
多维数组的索引
import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print("a:", a)
print(a[1, 2, 3])
print(a[-1, -2, -3])
输出结果如下:
多维数组切片
import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print("a:", a)
print(a[:, 1, -3])
print(a[:, :, ::3])
输出结果如下:
ndarray数组的计算
1、np.abs(x),np.fabs(x)计算各元素的绝对值
2、np.mean(x)平均值
3、np.sqrt(x)各元素的平方根
4、np.square(x)各元素的平方
5、np.log(x),np.log10(x),np.log2(x)对数
6、np.ceil(x),np,floor(x)计算ceiling/floor值{ceiling:不超过元素的最大整数,floor:小于该元素的最大整数}
7、np.rint(x)四舍五入
8、np.modf(x)以小数和整数以两个独立数组形式返回
9、np.cos(x)三角函数
10、np.exp(x)指数值
11、np.sign(x)计算数组各元素符号值{1(+),0,-1(-)}
二元函数
np.maximum(x,y) np.fmax()最大值计算
np.minimum(x,y) np.fmin()最小值计算
np.mod(x,y)模运算
np.copysign(x,y)将y中元素符号赋给x对应元素
matplotlib库的应用(后续补齐)
sin、cos函数图
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
show()
输出结果:
plot()函数:plot([x], y, [fmt], data=None, **kwargs)
其中可选参数[fmt]是一个字符串,用于定义图的基本属性:颜色(color)、点型(marker)、线型(linestyle)
具体形式为:fmt = [color][marker][linestyle],注意这里的三个属性只能是每个属性的单个字母缩写,若属性用的是全名则不能用[fmt]参数来组合赋值
**kwargs可用参数:x: x轴数据 y: y轴数据 linewidth: 线宽
color:线条颜色
'b' 蓝色 'r'红色 'g'绿色 'w'白色 'k'黑色
marker:标记风格
'.'点标记 ','像素标记
linestyle:线条格式
'-' 实线 '--'破折线 ':'虚线
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c, 'g|:')
plt.plot(x, s)
show()
输出结果:
设置图的横纵坐标的上下界:
xlim(), ylim()
pandas库的应用
series对象(一维) DataFrame对象(二维)
用Series()创建对象
data 输入的数据,可以是列表、常量、ndarray数组等
index索引必须唯一的,若没有,默认为np.arrange(n)
dtype数据类型
copy拷贝,默认为False
位置索引:S[0:2:1]含头部不含尾
标签索引:S["a":"b"]含头又含尾
方法:head()查看某一部分数据,默认前五行
tail()返回的为后n行数据,默认为后五行
isnull()若不存在或缺失,返回True
notnull()若不存或缺失,则为False
DataFrame()
比Series属性多了一个columns列标签
多的方法:
describe()产生每列汇总,产生多个汇总统计
median()每列中位数
count()统计非NaN数量
min()该列最小值
max()该列最大值
mean()每列平均
导入Excel数据
pd.read_x()
pd.DataFrame.to_x() {x为所要用到的文件类型例如:excel,csv等}
pd.read_excel(io,sheet_name,header,index_col,usecols)
io:excel路径
sheet_name:工作表名
header:指定行为列名
index_col:指定列为行名
usecols:是否需要读所有列
usecols=nrows nrows需要读取的行类
导入CSV数据
io,index_col,usecols都有
sep:分隔符,默认为',',导入其他txt数据,sep可设为可设为‘\t’
encodin:设置读写文本文件时所用编码行使
encoding-errors:出现错误时的处理方式,默认为'strict'
导出
pd.DataFrame.to_x()
参数:
excel_writer 文件路径/Excelwriter对象(要写入的名字)‘
sheet_name:工作表名
na_rep:缺失值的表现形式
float_format:设浮点数的输出形式
columns:指定要写入的列
header:写入每列名称,若为字符串列表,则为列的别名
index:要写入的索引