文章目录
机器学习——数据科学包(四)一、环境搭建(一)背景知识(二)操作系统(三)Anaconda(四)pycharm
二、Numpy简介(一)Numpy什么(二)ndarray(三)常用函数(1)创建numpy的方法a、具体操作:将python的list对象转换为numpy的ndarray对象b、通过numpy的内置函数直接生成c、从文件读取数据
(2)矩阵加减乘法(3)索引和切片(4)常用函数
三、散点图(一)概念(二)实践(1)举例:身高和体重的散点图(2)、正相关(3)负相关(4)不相关(5)股票价格涨幅
(三)外观调整
四、折线图(一)概念(二)实践(1)举例(2)参数
五、条形图垂直条形图水平条形图:组合图层叠图
六、直方图用条形图的高低表示频率大小用颜色的深浅表示频率的大小(用来绘制双变量的直方图)
七、饼状图八、箱型图:主要用于显示数据的分散情况九、颜色和样式(一)颜色(二)点,线的样式(1)点(2)线(3)样式字符串
十、面向对象 VS Matlab Style(一)三种方式简介
十一、子图—subplot十二、多图—figure十三、网格(一)plt进行交互式绘图(二)面向对象的方式:没有交互式效果,不能进行改变
十四、图例_legend(一)plt交互式方式(二)面向对象方式
十五、坐标轴范围的调整十六、坐标轴刻度十七、添加新坐标轴(一)pylot方式(二)交互式(1)共用x轴(2)共用y轴
机器学习——数据科学包(四)
一、环境搭建
(一)背景知识
(二)操作系统
(三)Anaconda
(四)pycharm
是一个开发环境,相当于编译器的功能。 应用实例: 创建文件
二、Numpy简介
(一)Numpy什么
(二)ndarray
(三)常用函数
(1)创建numpy的方法
a、具体操作:将python的list对象转换为numpy的ndarray对象
b、通过numpy的内置函数直接生成
import numpy as np
x = np.arange(11)
x
Out[14]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
c、从文件读取数据
loadtxt(‘文件名’,数据空格方式,跳过第几行(从1开始),用哪几列(从0开始),unpack) 通过shape查看矩阵大小
把三列分开放在三个变量里
(2)矩阵加减乘法
(3)索引和切片
(4)常用函数
min max median mean variance sort 1、np.func(x)用此形式对数组排序,会生成一个新的数组,x本身不会发生变化 2、x.func() x本身会发生变化,且并不会产生一个新的序列 y未生成新的数据
三、散点图
(一)概念
(二)实践
(1)举例:身高和体重的散点图
(2)、正相关
(3)负相关
(4)不相关
(5)股票价格涨幅
取得每天的开盘价和收盘价,然后得出每天的价格变化幅度,画出前一天和后一天涨幅关系的散点图。
(三)外观调整
注:可以改变点的面积,颜色,透明度
四、折线图
(一)概念
(二)实践
(1)举例
(2)参数
用日期数据作为x的输入,导入开盘价和收盘价
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# x=np.linspace(-10,10,100)
# y=x**2
# plt.plot(x,y)
# plt.show()
date, open, close= np.loadtxt('C:/Users/forever/Desktop/000001.csv', delimiter=',',
converters={0:mdates.bytespdate2num('%m/%d/%Y')}, skiprows=1, usecols=(0, 1, 4),unpack=True)
#plt.plot_date(date, open,'-') 常用线性
plt.plot_date(date, open,linestyle = '--', color = 'green', marker = '<')#设置颜色形状和点的形状
plt.plot_date(date, close,linestyle = '-', color = 'red', marker = '<')
五、条形图
垂直条形图
import numpy as np
import matplotlib.pyplot as plt
N=5
y=[20,10,30,25,15]
index = np.arange(N)
p1 = plt.bar(index,height=y,color='red',width=0.5)
plt.show()
水平条形图:
import numpy as np
import matplotlib.pyplot as plt
N=5
y=[20,10,30,25,15]
index = np.arange(N)
p1 = plt.bar(0,bottom=index+0.25,width=y,height=0.5,color='red',orientation='horizontal')
plt.show()
组合图
层叠图
六、直方图
直方图通常用来显示连续性的数值型数据,用连续的方式分组,并且是自定义的 条形图是用来展示不同类别的数据,且通常是不连续且不能自定义的。
用条形图的高低表示频率大小
import numpy as np
import matplotlib.pyplot as plt
mu = 100 # mean of distribution 均值
sigma = 20 # standard deviation of distribution 标准差
x = mu + sigma * np.random.randn(2000) #随机函数生成2000个数据的数组
#plt.hist(x, bins=10,color='red',normed=True) #normed表示是否要对数据进行标准化
plt.hist(x, bins=50,color='green',normed=False)
plt.show()
用颜色的深浅表示频率的大小(用来绘制双变量的直方图)
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(1000)+2 #生成1000个随机变量,其中心在2
y = np.random.randn(1000)+3 #生成1000个随机变量,其中心在3
plt.hist2d(x, y, bins=40)
plt.show()
七、饼状图
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
# Some data
labels = 'A', 'B', 'C', 'D'
fracs = [15, 30, 45, 10]
explode = (0, 0.05, 0, 0)# 表示每一部分离圆中心的距离,用来突出显示某一块
# Make square figures and axes
plt.axes(aspect=1) ##使得画出正圆
#explode = (0, 0.05, 0, 0)
#plt.pie(fracs, labels=labels, autopct='%1.1f%%', shadow=True)
plt.pie(fracs, explode=explode, labels=labels, autopct='%.0f%%', shadow=True) #autopct将每一部分占的比例用格式化字符串显示出来,
# shadow给每一块饼状图加上阴影,是图形更有立体感
plt.show()
八、箱型图:主要用于显示数据的分散情况
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(100)
data = np.random.normal(size=1000, loc=0.0, scale=1.0) #生成大小为1000的数组
plt.boxplot(data,sym='o',whis=1.5)#whis代表虚线长度,默认值是1.5
plt.show()
在一张图上把数据的一些统计量(上边缘,上四分位数,中位数,下四分位数,下边缘,异常值)直观的表示出来。 同时画几组数据的箱型图:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(100)
data = np.random.normal(size=(1000,4), loc=0.0, scale=1.0)#创建4*1000的数组,即4组数据
labels = ['A','B','C','D']
plt.boxplot(data, labels=labels)
plt.show()
九、颜色和样式
(一)颜色
(二)点,线的样式
(1)点
显示指定marker时会默认画出线段
(2)线
(3)样式字符串
十、面向对象 VS Matlab Style
(一)三种方式简介
# #pyplot
# import matplotlib.pyplot as plt
# import numpy as np
# x=np.arange(0,10,1)
# y=np.random.randn(len(x))
# plt.plot(x,y)
# plt.title('pyplot')
# plt.show()
# #pylab
# from pylab import * #通过pylab直接导出所有的函数,后面可以不加np. plt.(不推荐)
# x=arange(0,10,1)
# y=randn(len(x))
# plot(x,y)
# title('random numbers')
# show()
#改成面向对象的方式
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10,1)
y=np.random.randn(len(x))
fig=plt.figure() #生成画布对象
ax=fig.add_subplot(111) #生成坐标轴对象
l,=plt.plot(x,y)
t=ax.set_title('object oriented')
plt.show()
十一、子图—subplot
在一张图上画多个子图。
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(1,100)
plt.subplot(221)
plt.plot(x,x)
plt.subplot(222)
plt.plot(x,-x)
plt.subplot(223)
plt.plot(x,x*x)
plt.subplot(224)
plt.plot(x,np.log(x))
plt.show()
交互式画图
十二、多图—figure
运用多个figure生成子图
import matplotlib.pyplot as plt
fig1=plt.figure()
ax1=fig1.add_subplot(111)
ax1.plot([1,2,3],[3,2,1])
fig2=plt.figure()
ax2=fig2.add_subplot(111)
ax2.plot([1,2,3],[1,2,3])
plt.show()
十三、网格
(一)plt进行交互式绘图
(二)面向对象的方式:没有交互式效果,不能进行改变
十四、图例_legend
(一)plt交互式方式
(二)面向对象方式
十五、坐标轴范围的调整
十六、坐标轴刻度
坐标是日期的调整
十七、添加新坐标轴
(一)pylot方式
(二)交互式
(1)共用x轴
(2)共用y轴