个人学习笔记,课程为Python数学建模与分析:基础入门、数据处理、算法编程、高级绘图、建模实战!
目录
文中引入的csv文件:
链接:https://pan.baidu.com/s/1NWLzgAir70LQKUxv74lfIg?pwd=d2n5
提取码:d2n5
一、Pandas速成
1.Series
#series:一维数组: list
import numpy as np
import pandas as pd
myarray =np.array([1,2,3])
index = ['a','b','c']
myseries = pd.Series(myarray, index=index)
print(myseries)
print('series的第一个元素')
print(myseries[0])
print('series的c index的元素:')
print(myseries['c'])
2.Dataframe
#Dataframe:可以指定行和列的二维数组
myarray = np.array([[1,2,3], [2,3,4], [3,4,5]])
rowindex = ['row1','row2','row3']
colname = ['col1','col2','col3']
mydataframe = pd.DataFrame(data=myarray, index=rowindex, columns=colname)
print(mydataframe)
print('访问col3的数据')
print(mydataframe['col3'])
二、数据导入
1. csv
特征: 以逗号分割 文件头:字段属性
#csv特征: 以逗号分割 文件头:字段属性
from csv import reader
import numpy as np
filename='pima.csv'
with open(filename, 'rt') as raw_data:
readers = reader(raw_data, delimiter=',')
x = list(readers)
data = np.array(x).astype('float')
print(data.shape)
2.Pandas导入
#pandas导入
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
print(data.shape)
3.Numpy导入
#numpy导入
from numpy import loadtxt
filename = 'pima.csv'
with open(filename, 'rt') as raw_data:
data = loadtxt(raw_data, delimiter=',')
print(data.shape)
三、数据理解
1.查看数据
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
head = data.head(10)
#查看数据
print(head)
2.数据维度
#数据的维度
print(data.shape)
3.数据属性和类型
#数据的属性和类型
print(data.dtypes)
4.描述性统计
#描述性统计
print(data.describe())
5.数据分组分布(适用于分类算法)
#数据的分布
print(data.groupby('class').size())
6.数据属性相关性
#数据的相关性:皮尔逊相关系数
print(data.corr(method='pearson'))
7.数据分布分析
#数据的分布分析:高斯分布
print(data.skew())
四、数据可视化
1.单一图表
(1)直方图
#直方图
from pandas import read_csv
import matplotlib.pyplot as plt
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
data.hist()
plt.show()
(2)密度图
#密度图
from pandas import read_csv
import matplotlib.pyplot as plt
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
data.plot(kind='density',subplots=True,layout=(3,3),sharex=False)
plt.show()
(3)箱线图
#箱线图
from pandas import read_csv
import matplotlib.pyplot as plt
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
data.plot(kind='box',subplots=True,layout=(3,3),sharex=False)
plt.show()
2.多重图表
(1)相关矩阵图
#相关矩阵图
from pandas import read_csv
import numpy as np
import matplotlib.pyplot as plt
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
correlations = data.corr()
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations,vmin=-1,vmax=1)
fig.colorbar(cax)
ticks = np.arange(0,9,1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(names)
ax.set_yticklabels(names)
plt.show()
(2)散点矩阵图
#散点矩阵图
from pandas import read_csv
from pandas.plotting import scatter_matrix
import numpy as np
import matplotlib.pyplot as plt
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
scatter_matrix(data)
plt.show()