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 np
    list1 = [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 mdates
    
    converters = {0:mdates.strpdate2num('%m/%d/%Y')}  # 转换日期格式的数据  23/2/2021 0是列数
    
    

    2.1.2 基本操作

    c = np.arange(11)
    c+c      # 矩阵加法
    c-c      # 矩阵减法 等等
    
    # 索引和切片
    c[0]    ----> 0
    c[3]    ----> 3
    c[-1]   ----> 10
    
    c[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散点图。

    python Numpy 的基础用法以及 matplotlib 基础图形绘制_第1张图片

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

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

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

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

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

实列 :股票价格涨幅

# 散点图实例   列如 身高和体重的散点图
import matplotlib.pyplot as plt

height = [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 : 折线图

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

python Numpy 的基础用法以及 matplotlib 基础图形绘制_第2张图片

import matplotlib.pyplot as plt

# 从 -10 到 10 平均分成100份

x = np.linspace(-10,10,100)     # linspace 是numpy里的一个函数 用于生成一组等区间的数值

y = x**2

plt.plot(x,y)

plt.show()

# 如果是时间格式需要使用专门提供的函数

plt.plot_date(date,open,'-')  # 自动识别date转换为相应的时间

# 外观调整
# 颜色     color='red'
# 点形状   marker='0'
# 线性     linestyle='-'  # 虚线  ’--’
#多条直线的话多plt生成多条

3.3 条形图

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

python Numpy 的基础用法以及 matplotlib 基础图形绘制_第3张图片

import numpy as np

import matplotlib.pyplot as plt

# 垂直条形图

N = 5

y = [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=index
2. 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_width

plt.show()

# 层叠图的话是两个或多个横坐标一样,只是多出的会堆积在前一个之上
	属性加上bottom=sales_BJ

3.4 直方图

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

import numpy as np

import matplotlib.pyplot as plt

mu = 100   # 均值100

sigma = 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的中心在2

y = random.randn(1000) +3  # y的中心在3

plt.hist2d(x,y,bins=40)

plt.show()

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

python Numpy 的基础用法以及 matplotlib 基础图形绘制_第5张图片

3.5 饼状图:

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

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

python Numpy 的基础用法以及 matplotlib 基础图形绘制_第6张图片

import matplotlib.pyplot as plt

labels = '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 箱型图

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

python Numpy 的基础用法以及 matplotlib 基础图形绘制_第7张图片

import numpy as np

import matplotlib.pyplot as plt

np.random.seed(100)

data = np.random.norma(size=1000,loc=0,scale=1)
 
plt.boxplot(data,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()

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()

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

你可能感兴趣的:(python后端绘图,python,矩阵,开发语言)