1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python Numpy 的基础用法以及 matplotlib 基础图形绘制

python Numpy 的基础用法以及 matplotlib 基础图形绘制

时间:2020-01-07 15:02:39

相关推荐

python Numpy 的基础用法以及 matplotlib 基础图形绘制

python Numpy 的基础用法以及 matplotlib 基础图形绘制

1. 环境搭建

1.1 Anaconda

​ anaconda 集成了数据分析,科学计算相关的所有常用安装包,比如Numoy、Scipy、Matplotlib、Ipython 等等。

1.2 pycharm

​ 非常好用的python集成开发环境。

2. Numpy是什么

Numpy 是 python 的开源的数值计算扩展

可用来存储和处理大型矩阵,比python自身数据结构高效

Numpy 将python 变成一种免费的强大的Matlab系统

2.1 Numpy的核心数据对象ndarray

​ 相当于一个矩阵,存储了我们所需要的一些数据

2.1.1 创建ndarray数据对象的三种方式

从python的基础数据对象转化

import numpy as nplist1 = [1,2,3]x1 = np.array(list1)print(x1) -----> array([1,2,3]) # numpyarray 对象

通过Numpy内生的函数生成

x1 = np.arange(3)print(x1) -----> array([0,1,2])

从硬盘文件读取数据

x1 = np.loadtxt('文件名',delimiter='已什么符号做分割',skiprows=跳过第几行,usecols=(用到第几列,列数 ,列数.. ),unpack=False) # 返回数组# 其他参数 import matplotlib.dates as mdatesconverters = {0:mdates.strpdate2num('%m/%d/%Y')} # 转换日期格式的数据 23/2/ 0是列数

2.1.2 基本操作

c = np.arange(11)c+c# 矩阵加法c-c# 矩阵减法 等等# 索引和切片c[0] ----> 0c[3] ----> 3c[-1] ----> 10c[0:5] ----> array([0,1,2,3,4]) # 等等python list 支持的切片语法# numpy 中经常用到的统计函数min max medain mean (均值) variance (方差) sort# numpy 中调用一个函数np.func(x) x.func()# 列:c = np.random.randint(1,100,10) # 随机生成10个1-100的整数 np.max(c) np.mean(c) 或 c.max() c.min()两者区别在于 使用第一种 会生成一个新的序列 使用第二种 c 变化 并不产生一个新的序列

3. 0 matplotlib 的使用:

3.1 : 散点图

​ 顾名思义就是由一些散乱的点组成的图表,这些点在哪个位置,是由其X值和Y值确定的。所以 也叫 做XY散点图。

散点图最大作用就是验求两个变量的相关性

相关性: 正相关 、负相关、 不相关

​ 正相关:散点图有明显向右上的趋势

​ 负相关:散点图有明显的右下趋势

​ 不相关 : 散点图没有明显的趋势

实列 :股票价格涨幅

# 散点图实例 列如 身高和体重的散点图import matplotlib.pyplot as pltheight = [161,170,183,190,156]weight = [50,80,65,73,80]# height 为 x 轴坐标 weight 为 y 轴坐标plt.scatter(height,weight)plt.show()# 外观调整#颜色c#点大小s#透明度alpha# 点形状 marker plt.scatter(height,weight,s=100,c='r',marker='<',aloha=0.5) # 具体参数使用去官网查看

3.2 : 折线图

​ 折线图和带数据标记的折线图 折线图用于显示随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。在有很多数据点并且它们的显示顺序很重要时,折线图尤其有用。如果有很多类别或者数值是近似的,则应该使用不带数据标记的折线图。

import matplotlib.pyplot as plt# 从 -10 到 10 平均分成100份x = np.linspace(-10,10,100)# linspace 是numpy里的一个函数 用于生成一组等区间的数值y = x**2plt.plot(x,y)plt.show()# 如果是时间格式需要使用专门提供的函数plt.plot_date(date,open,'-') # 自动识别date转换为相应的时间# 外观调整# 颜色color='red'# 点形状 marker='0'# 线性linestyle='-' # 虚线 ’--’#多条直线的话多plt生成多条

3.3 条形图

​ 条形统计图是用一个单位长度表示一定的数量,根据数量的多少画成长短不同的直条,然后把这些直条按一定的顺序排列起来。从条形统计图中很容易看出各种数量的多少。条形统计图一般简称条形图,也叫长条图或直条图。

import numpy as npimport matplotlib.pyplot as plt# 垂直条形图N = 5y = [20,10,30,25,15]index = np.arange(N)p1 = plt.bar(left=index,height=y)plt.show()# 外观调整color='red'width=0.8 # 宽度默认为0.8# 水平条形图1. 在垂直条形图加上一个参数:orientation='horizontal' # 条形图的方向# 当把垂直条形图变为水平之后,他的left不在是横坐标了,他的横坐标变成了他的纵坐标left=0,bottom=index2. p1 = plt.barh(left=0,bottom=index,width=y)#并列条形图index = np.arange(5)sales_BJ = [52,55,63,53]sales_SH = [44,66,55,41]bar_width = 0.3 plt.bar(index,sales_BJ,bar_width,color='b')plt.bar(index+bar_with,sales_SH,bar_width,color='r') # SH 横坐标宽度比 BJ 多一个bar_widthplt.show()# 层叠图的话是两个或多个横坐标一样,只是多出的会堆积在前一个之上属性加上bottom=sales_BJ

3.4 直方图

​ 直方图显示图像数据时会以左暗又亮的分布曲线形式呈现出来,而不是显示原图像数据,并且可以通过算法来对图像进行按比例缩小,且具有图像平移、旋转、缩放不变性等众多优点。直方图在进行图像计算处理时代价较小,所以经常用于图像处理!

import numpy as npimport matplotlib.pyplot as pltmu = 100 # 均值100sigma = 20 # 标准差x = mu + sigma * np.random.randn(2000) # 随机生成一个大小为2000的数组plt.hist(x,bins=10,color='red',normed=True) # bins 总共有几个直方 normed 是否对数据进行标准化plt.show()# 双变量直方图x = random.randn(1000) +2 # x的中心在2y = random.randn(1000) +3 # y的中心在3plt.hist2d(x,y,bins=40)plt.show()

双变量直方图 探索双变量的联合分布很有用

3.5 饼状图:

​ 饼状图就是在一个圆形上以圆心为轴切割,表示不同的内容在整体中所占比例。看上去像一张饼。

打开我的电脑,在盘符上右键,属性,看到的表示可用空间和已用空间的图形就是一个简单的饼状图

import matplotlib.pyplot as pltlabels = 'A','B','C','D'fracs = [15,30,45,10]explode = [0,0.05,0,0]plt.axes(aspect=1)plt.pie(x=fracs,labels=labels,autopct='%.of%%',explode=explode,shadow=True) # autopct 将每一块的比例用python格式化字符串显 explode 突出显示 shadow 加阴影示出来plt.show()

3.6 箱型图

​ 须图又称为箱形图,其绘制须使用常用的统计量,最适宜提供有关数据的位置和分散的参考,尤其在不同的母体数据时更可表现其差异,常用的统计量 :平均数、中位数、百分位数、四分位数、全距、四分位距、变异数和标准差。

import numpy as npimport matplotlib.pyplot as pltnp.random.seed(100)data = np.random.norma(size=1000,loc=0,scale=1)plt.boxplot(data,sym='0',whis=1.5) # sym 异常值点的形状 虚线的长度 默认1.5plt.show()# 同时画几组数据‘import numpy as npimport matplotlib.pyplot as pltnp.random.seed(100)data = np.random.norma(size=(1000,4),loc=0,scale=1) # 4组数据,每组有1000条数据lables=['A','B','C','D']plt.boxplot(data,lables=lables)plt.show()

sym=‘0’,whis=1.5) # sym 异常值点的形状 虚线的长度 默认1.5

plt.show()

同时画几组数据‘

import numpy as np

import matplotlib.pyplot as plt

np.random.seed(100)

data = np.random.norma(size=(1000,4),loc=0,scale=1) # 4组数据,每组有1000条数据

lables=[‘A’,‘B’,‘C’,‘D’]

plt.boxplot(data,lables=lables)

plt.show()

想知道后续进阶请关注博主 博主作品栏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。