精华内容
下载资源
问答
  • Matplot 常用函数总结

    2017-07-03 09:16:20
    python Matplot 常用函数总结

    学习整理自:http://www.cnblogs.com/TensorSense/p/6802280.html,如有侵权,联系删除

    plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test

    plt.ylabel(‘Grade’) :  y轴的名称

    plt.axis([-1, 10, 0, 6]) :  x轴起始于-1,终止于10 ,y轴起始于0,终止于6

    plt.subplot(3,2,4) :  分成3行2列,共6个绘图区域,在第4个区域绘图。排序为行优先。也可 plt.subplot(324),将逗号省略。

     

    .plot函数

    plt.plot(x, y, format_string, **kwargs): x为x轴数据,可为列表或数组;y同理;format_string 为控制曲线的格式字符串, **kwargs 第二组或更多的(x, y, format_string)

    format_string: 由 颜色字符、风格字符和标记字符组成。

    颜色字符:‘b’蓝色  ;‘#008000’RGB某颜色;‘0.8’灰度值字符串

    风格字符:‘-’实线;‘--’破折线; ‘-.’点划线; ‘:’虚线 ; ‘’‘’无线条

    标记字符:‘.’点标记  ‘o’ 实心圈 ‘v’倒三角  ‘^’上三角

     

    eg: plt.plot(a, a*1.5, ‘go-’,    a, a*2, ‘*’)   第二条无曲线,只有点

     

    .plot 显示中文字符

    pyplot并不默认支持中文显示,需要rcParams修改字体来实现

    rcParams的属性:

    ‘font.family’ 用于显示字体的名字

    ‘font.style’ 字体风格,正常’normal’ 或斜体’italic’

    ‘font.size’ 字体大小,整数字号或者’large’   ‘x-small’

    eg:

    import matplotlib

    matplotlib.rcParams[‘font.family’] = ‘STSong’

    matplotlib.rcParams[‘font.size’] = 20

    设定绘制区域的全部字体变成 华文仿宋,字体大小为20

     

    中文显示2:只希望在某地方绘制中文字符,不改变别的地方的字体

    在有中文输出的地方,增加一个属性: fontproperties

    eg:

    plt.xlabel(‘横轴:时间’, fontproperties = ‘simHei’, fontsize = 20)

     

    pyplot文本显示函数:

    plt.xlabel():对x轴增加文本标签

    plt.ylabel():同理

    plt.title(): 对图形整体增加文本标签

    plt.text(): 在任意位置增加文本

    plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)

    : 在图形中增加带箭头的注解。s表示要注解的字符串是什么,xy对应箭头所在的位置,xytext对应文本所在位置,arrowprops定义显示的属性

    eg:

    plt.xlabel(‘横轴:时间’, fontproperties = ‘SimHei’, fontsize = 15, color = ‘green’)

    plt.ylabel(‘纵轴:振幅’, fontproperties = ‘SimHei’, fontsize = 15)

    plt.title(r’正弦波实例 $y=cons(2\pi x)$’ , fontproperties = ‘SimHei’, fontsize = 25)

    plt.annotate (r’%mu=100$, xy = (2, 1), xytext = (3, 1.5),

    arrowprops = dict(facecolor = ‘black’, shrink = 0.1, width = 2)) # width表示箭头宽度

    plt.text (2, 1, r’$\mu=100$, fontsize = 15)

    plt.grid(True)

     

    plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)

     

    plt子绘图区域

    plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1):设定网格,选中网格,确定选中行列区域数量,编号从0开始。

    eg:

    plt.subplot2grid((3, 3), (1, 0), colspan = 2) : (3,3)表示分为3行3列,(1,0)表示选中第1行,第0列的区域进行绘图,colspan=2表示在选中区域的延伸

     

     

     

    GridSpec类



     

    Plot的图表函数

    plt.plot(x,y , fmt)  :绘制坐标图

    plt.boxplot(data, notch, position): 绘制箱形图

    plt.bar(left, height, width, bottom) : 绘制条形图

    plt.barh(width, bottom, left, height) : 绘制横向条形图

    plt.polar(theta, r) : 绘制极坐标图

    plt.pie(data, explode) : 绘制饼图

    plt.scatter(x, y) :绘制散点图

    plt.hist(x, bings, normed) : 绘制直方图

     

    绘制饼图

     

    explode表示突出,如橘色这一块突出;autopct  表示显示数据的格式; shadow表示二维饼图;startangle表示起始的角度;

    此为椭圆形饼图,要为圆形,可添加:  plt.axis(‘equal’)

     

    绘制直方图

    bings将直方图的取值范围进行均等划分bings个区间;

    normed =1 表示将出现频次进行了归一化。 normed=0,则为频次;

    alpha表示直方图的透明度[0, 1] ;

    histtype = ‘stepfilled’  表示去除条柱的黑色边框

     

    面向对象的极坐标图绘制

     

    面向对象散点图绘制

     

    将subplots()变成一个对象,fig和ax表示subplots生成的图表以及相关区域。subplots为空时,默认为subplots(111)


    展开全文
  • 很多方法都只列出了一个目录,详细的内容需要去对应的API文档看,本文档的作用是对于初学可以感受到numpy,pandas可以做哪些数据分析,而不用自己一步一步敲代码,整体感知。
  • matplot绘图常用快查

    2019-05-06 13:38:14
    matplot绘图常用快查全局画布图表元素--辅佐线--坐标--图形 全局 matplotlib.rcsetup.all_backends:获取本地可用backend matplotlib.use(arg):修改backend matplotlib.pyplot.get_backend():获取当前的 ...

    全局

    –渲染

    matplotlib.rcsetup.all_backends:获取本地可用backend
    matplotlib.use(arg):修改backend
    matplotlib.pyplot.get_backend():获取当前的 backend
    matplotlib.pyplot.ion():开启交互模式
    matplotlib.pyplot.ioff():关闭交互模式

    –样式

    matplotlib.matplotlib_fname():自定义的配置文件位置
    matplotlib.get_configdir():默认样式文件位置
    plt.style.use():使用样式
    plt.style.available:当前可用的样式列表
    plt.style.context():在某个块内使用某种样式
    matplotlib.rcParams['...']:直接定义样式参数
    plt.rcParams['font.sans-serif']=['simhei']:正常显示中文
    plt.rcParams['axes.unicode_minus']=False || plt.rc('axes',unicode_minus=False):正常显示负号
    matplotlib.rcdefaults():恢复内建的样式
    matplotlib.rc_file_defaults():恢复成最初导入的 rc 文件样式

    • plt.plot 函数使用 fmt 参数, plt.stem 函数使用了 linefmt, markerfmt, basefmt 参数
      线
      '-':实线
      '--':杠线
      '-.':点杠线
      ':':点线
      标记点
      '.':点
      ',':无
      'o':圆
      'v' || '1':下三角
      '^' || '2':上三角
      '<' || '3':左三角
      '>' || '4':右三角
      's':方形
      'p':五边形
      '*':星形
      'h' || 'H':六边形2种
      '+':加号
      'x':叉号
      'D' || 'd':大小钻石
      '\|':短竖线
      '_':短横线
      颜色
      'b':蓝
      'g':绿
      'r':红
      'c':青
      'm':品
      'y':黄
      'k':黑
      'w':白

    画布

    plt.figure(num, figsize, dpi):创建或切换画布
    plt.get_fignums():返回所有画布编号
    plt.gcf():获取当前的画布
    plt.suptitle(t):设置画布标题
    plt.show():绘制画布
    plt.savefig(fname, dpi, format, transparent):画布保存成文件
    plt.clf():清除当前的画布
    plt.close(num):关闭指定画布

    图表

    plt.subplot(211, sharex, sharey):指定位置绘制图表,sharex为Axes对象
    plt.axes(ax):切换图表
    plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False):创建新画布和一系列的子图表
    plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None):调整子图表布局
    plt.twinx(ax=None) || plt.twiny(...):创建重叠图表, y或x轴放在右侧或顶部
    plt.cla()清除当前的图表
    plt.delaxes(ax=None):删除当前或指定图表

    元素

    –图形

    plt.plot(x1, y1, fmt1, x2, y2, fmt2, ...):点线图
    plt.step(x1, y1, x2, y2, ..., where='pre'):阶梯状,where:[pre,post,mid]
    plt.plot_date(x, y, fmt='o', xdate=True, ydate=False):点线图,轴解析为日期
    plt.errorbar(x, y, yerr=None, xerr=None, lolims=False, uplims=False, xlolims=False, xuplims=False):误差线图
    plt.fill_between(x, y1, y2=0):填充的线图
    plt.fill_betweenx(y, x1, x2=0):纵向填充的线图
    plt.stackplot(x, y1, y2, ...:堆叠图
    plt.bar(x, height, width=0.8, bottom=0):柱状图
    plt.barh(y, width, height=0.8, left=0):水平柱状图
    plt.scatter(x, y, s=None, c=None, alpha=None):散点图
    stem(x, y, linefmt=None, markerfmt=None):杆图
    plt.pie(x, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1):饼图

    –坐标

    plt.axis([xmin, xmax, ymin, ymax]):返回或设置坐标轴范围
    plt.axis('off'):不显示坐标轴和坐标轴名称
    plt.axis('tight'):尽量裁剪
    plt.xticks(locs, labels) || plt.yticks(...):设置坐标点及标签
    plt.xlabel(label) || plt.ylabel(...):设置轴标签
    plt.xlim(xmin, xmax) || plt.ylim(...):设置并返回轴范围
    plt.grid(b=None, axis='both'):栅格
    plt.title(s):添加图表标题
    plt.legend():添加图例
    plt.annotate(s, xy):图表中进行标注
    plt.text(x, y, s):添加文字
    plt.arrow(x, y, dx dy):绘制箭头,从 (x, y) 到 (x+dx, y+dy)

    –辅佐线

    plt.axvline(x=0, ymin=0, ymax=1) || plt.axhline(...):横跨当前图表的垂直/水平辅助线
    plt.axvspan(xmin, xmax, ymin=0, ymax=1) || plt.axhspan(...):横跨当前图表的垂直/水平区域

    展开全文
  • 折线图:里面的数据不能运行只是介绍用法 import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager from matplotlib.pyplot import MultipleLocator plt.rcParams['font.sans-...

     折线图:里面的数据不能运行只是介绍用法

    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib import font_manager
    from matplotlib.pyplot import MultipleLocator
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体显示中文
    xlist = []
    ylist = []
    plt.plot(xlist, ylist, color ='red', linestyle = '--')#给个xlist和ylist画函数图x是x轴坐标y是Y轴坐标存取时一一对应
    #plt.plot(ylist, color ='blue', linestyle = '--')
    plt.axvline(0, color='blue', linestyle='--')#绘制y轴平行线
    plt.axvline(0.25, color='blue', linestyle='--',linewidth=2)
    plt.axvline(0.43, color='blue', linestyle='--')
    plt.axvline(0.69, color='blue', linestyle='--')
    plt.axvline(1, color='blue', linestyle='--')
    plt.axhline(0, color='red', linestyle='--')#绘制x轴平行线
    plt.title("BaTiO3能带曲线图")#设置标题
    plt.xlabel("Band energy", fontsize=12)#x轴名称
    plt.ylabel("Energy(Ha)")#y轴名称
    plt.tick_params(axis='both',labelsize=10)# 设置坐标轴刻度标记的大小
    plt.axis([-1,1,-1,1])#这个是设置x轴y轴的左右的极限值也就是横纵坐标大小
    plt.show()#显示图像
    plt.xticks([1, 1.5,2,2.5, 3,3.5, 4,4.5, 5,5.5, 6],["1:20","1:25","1:30", "1:35","1:40","1:45", "1:50", "1:55", "1:60","1:70","1:75"])#这个是更改x轴的名字每个刻度变成了这个名字

    这是公式造图

    import matplotlib.pyplot as plt
    import numpy as np
    x = np.linspace(-1, 1, 50)#-1是开始点1是结束点50是每个格子的长度
    y = x**2
    plt.plot(x, y)
    plt.show()

     这是3d图

    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    fig = plt.figure()#建一个框
    ax = Axes3D(fig)
    x = np.arange(-4,4,0.25)
    y = np.arange(-4,4,0.25)
    x, y = np.meshgrid(x, y)
    r = np.sqrt(x**2+y**2)
    z =  np.sin(r)
    ax.plot_surface(x, y, z, rstride=1,cstride=1, cmap=plt.get_cmap('rainbow'))
    plt.show()

    这是当时学习笔记 

    import matplotlib.pyplot as plt
    import numpy as np
    from pylab import mpl
    from matplotlib.pyplot import MultipleLocator
    mpl.rcParams['font.sans-serif'] = ['SimHei']   # 指定默认字体解决中文转码
    
    x = np.linspace(-1, 1, 50)#-1是开始点1是结束点50是把全长分成50份
    y1 = 2*x+1
    y2 = x**2
    plt.figure()#num是编号figsize()是显示框大小表示新创建一个图像框不信创建的话会图像重叠
    plt.plot(x, y1)
    plt.figure(num = 3, figsize=(8,5))#num是编号figsize()是显示框大小
    plt.plot(x, y2)
    plt.plot(x, y1, color='red', linewidth=5.0, linestyle='--')
    plt.xlim((-1,2))#x轴的左边和右边的极限值
    plt.ylim((-2,3))#y轴的取值
    plt.xlabel('x的描述')
    plt.ylabel('y的描述')
    x_major_locator = MultipleLocator(3)
    ax = plt.gca()
    # 把x轴的主刻度设置为1的倍数
    # 把x轴的刻度间隔设置为1,并存在变量里
    x_major_locator = MultipleLocator(0.5)
    # 把y轴的刻度间隔设置为1,并存在变量里
    y_major_locator = MultipleLocator(0.5)
    # ax为两条坐标轴的实例
    ax = plt.gca()
    # 把x轴的主刻度设置为1的倍数
    ax.xaxis.set_major_locator(x_major_locator)
    # 把y轴的主刻度设置为1的倍数
    ax.yaxis.set_major_locator(y_major_locator)
    

    3d图形笔记 

    import numpy as np
    from scipy import stats
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    # 三维,两个特征
    fig = plt.figure(figsize=(8, 6)) #设置图标的大小
    ax = fig.add_subplot(111, projection='3d') # 111的意思是把画布分为1行1列,画在第一个方格内。其实就是整个画布。
    
    # 创建样本,注意两个特征不能线性相关,否则无法用最小二乘解参数
    X1 = np.arange(-4, 4, 0.1)
    m = len(X1)
    X2 = np.random.rand(m)*5
    # print(X2)
    # print(X1)
    
    # 堆叠全1数组和X1以及X2形成样本的矩阵,倒置,用以矩阵乘法
    X = np.vstack((np.full(m, 1), X1, X2)).T
    
    # y = 15*X1 + 3 * X2 + theta0
    # 自定义样本输出
    Y = X1 + 3 * X2 + 3*np.random.randn(m)
    
    # 利用标准方程(最小二乘法求解theta)
    theta = np.dot(np.dot(np.linalg.inv(np.dot(np.transpose(X), X)),
    np.transpose(X)), Y)
    print(theta)
    
    # 构造网格 meshgrid函数可以通过延伸矩阵构造多维坐标中的网格坐标。
    M, N = np.meshgrid(X1, X2)
    
    # zip函数构建一个多元祖[(x1,y1),(x2,y2)...],ravel函数将一个多维数组合并成一维数组
    Z = np.array([theta[1] * d + theta[2]*p + theta[0] for d, p in zip(np.ravel(M), np.ravel(N))]).reshape(M.shape)
    
    # 根据网格和函数构建图形 suface是一个完整的面
    #ax.plot_surface(M, N, Z)
    # scatter是散点图
    ax.scatter(X1, X2, Y, c='r')
    # 设置坐标轴的名称
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    
    plt.show()

    这是一个3d例子:

    import numpy as np
    from scipy import stats
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    fig = plt.figure(figsize=(8, 6)) 
    ax = fig.add_subplot(111, projection='3d') 
    X1 = np.arange(-4, 4, 0.1);X2 = np.random.rand(len(X1))*10
    X = np.vstack((np.full(len(X1), 1), X1, X2)).T
    Y = X1 + 3 * X2 + 3*np.random.randn(len(X1))
    thetac = np.dot(np.dot(np.linalg.inv(np.dot(np.transpose(X), X)),np.transpose(X)), Y)
    print(thetac)
    M, N = np.meshgrid(X1, X2)
    Z = np.array([thetac[1] * d1 + thetac[2]*p + thetac[0] for d1, p in zip(np.ravel(M), np.ravel(N))]).reshape(M.shape)
    ax.scatter(X1, X2, Y, c='r')
    ax.set_xlabel('X(*1e2nm)')
    ax.set_ylabel('Y(*1e2nm)')
    ax.set_zlabel('Z(*1e2nm)')
    plt.show()

    这是直方图:

    import numpy as np
    import pandas as pd
    from pylab import mpl
    import matplotlib.pyplot as plt
    series = np.array([3, 5, 7, 10, 3])
    plt.bar(x=list('ABCDE'), height=series, color='tab:green', width=.5)
    plt.show()
    plt.barh(y=list('abcde'), width=series, height=.5)
    plt.show()

    直方图操作实例可以运行:

    import numpy as np
    import pandas as pd
    from pylab import mpl
    import matplotlib.pyplot as plt
    from matplotlib.pyplot import MultipleLocator
    mpl.rcParams['font.sans-serif'] = ['SimHei']  
    series = np.array([15.4, 12.3, 9.2, 6.4, 2.2])
    series1 = np.array([14.3, 11.4, 7.4, 5.5, 1.1])
    series2 = np.array([14.6, 9.6, 6.5, 4.3, 1.6])
    labels = [1,2,3,4,5]
    x = np.arange(len(labels))
    width = 0.1
    plt.xlabel("time(day)", fontsize=12)
    plt.ylabel("Surplus of sand(cm3)", fontsize=12)
    plt.bar(x-width, series, width, label='cone')
    plt.bar(x, series1, width, label='Cylinder')
    plt.bar(x+width, series2, width, label='Pyramid')
    plt.legend()
    plt.xticks(x, labels)
    plt.title("The change of sand surplus caused by the impact of sea water on sand pile at different time", fontsize=7)
    plt.show()

     

    展开全文
  • 本文引用和使用的类库 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets Jupyter Notebook’s Learning to writing Toolbar 可以进行 Cell代码行的编写运行 ...

    本文引用和使用的类库

    • import numpy as np
    • import matplotlib.pyplot as plt
    • from sklearn import datasets

    Jupyter Notebook’s Learning to writing

    Toolbar

    • 可以进行 Cell代码行的编写运行
    • 可以切换Cell编写模式——为Markdown的模式
    • Help当中可以快速浏览并且更改使用的快捷键

    快捷键

    • a/b 快速插入一行(在相应的选中行的上面或者下方)
    • x 剪切/删除一行
    • m 切换为markdown模式
    • y 切换为coding模式

    优点

    每次不用总是重新加载数据
    只需要加载一次就可以!所以方便
    注意:下面定义的变量,在上方也可以用!除非点击Kernel——Restart & run all

    以上就可以充值变量上下文。

    Jupyter Notebook 高级-魔法命令

        %run    #调用并且 加载对应的脚本/方法。
        %timeit #只能写一句话!测试 耗费时间
        %%timeit #测试下面耗时
        %time #测试一句话的cpu和人类感知的实际时间
        %%time #测试多行代码耗时
    

    %run? #查看对应方法的 帮助文档

    lsmagic #查看当前环境下,所有的魔法命令

    numpy.array基础

    选择为什么不选择List

    Python List 的特点

        L = [i for i in range(10)]
        # 像是cell  可以放置多种不同类型的元素在List中。
        # List十分灵活
        import array
        arr = array.array('i',[ i for i in range(10) ])
        #array模块是python中实现的一种高效的数组存储类型。它和list相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型
        #array.array(typecode,[initializer]) --typecode:元素类型代码;initializer:初始化器,若数组为空,则省略初始化器
        arr = array.array('i',[0,1,1,3])
        print(arr)
        #array('i', [0, 1, 1, 3])
    
        #array.typecode -- 对象属性
        print('\n 输出 用于创建数组的类型代码字符:')
        print(arr.typecode)
        # 输出 用于创建数组的类型代码字符:
        #i
    

    区别List 、 array、 numpy.array

    • Python的List不要求存储同样的类型,带来效率问题。
    • array的缺点是没有将数据当做向量或者矩阵,不支持基本运算。
    • nparr.dtype —— 只有一种类型的数据类型在nparr中!
      而且 nparr可以有 整型 和 浮点型
      而且 nparr可以用来生成 矩阵和向量之类的。

    使用 range 创建list列表

    • range(start, stop[, step])

    参数说明:

    start: 计数从 start 开始。默认是从 0 开始。例如range(5)等>价于range(0, 5);
    stop: 计数到 stop 结束,但不包括 stop。例如:range(0, >5) 是[0, 1, 2, 3, 4]没有5
    step:步长,默认为1。例如:range(0, 5) 等价于 range(0, >5, 1)

    函数方法

    • np.arange(0, 20, 2)

    #[0, 20) 步长为2的

    • np.linspace(0, 20, 10)

    #[0, 20] 区间中截取出10个数字

    • np.random.randint( 0, 10, 10/(3,5) )

    [0,10)的随机10 个数字;或者 3行5列!

    • np.random.random( 10/(3, 5) )

    0-1之间均匀的浮点数

    • np.random.seed( 666 )

    给予一个伪随机数,就能对应生成确定的随机矩阵。

    • np.random.normal( 10, 100, (3,5))

    #默认:均值为0 方差为1,的随机的浮点数。上面是均值为10、方差为100的 3行5列的矩阵!

    • np.random.uniform( 0., 10., size = 100 )

    产生100个 [0,100) 的浮点数

    查看文档

    • np.random?
    • help(np.random)

    其它创建numpy.array的方法

    • np.zeros(10)
    • np.ones((3,5))
    • np.full( (3,5), 666 )

    numpy.arrary 的基本操作

    • X = np.arange(15).reshape((3, 5))
      15个元素 重新构成3*5的矩阵
    • X.ndim #2(二维数组)
    • X.shape #(3,5)

    注意: X.shape[0] == 3

    • X.size #15

    数据访问方法

    多维数组不建议:X[0][0]
    建议使用:X[0, 0]

    切片

    切片访问: x[0:5:2] 【0,5) 步长为2 NOT X
    X[:2, :3] #前两行的 前三列
    X[ :, 0] #取第一列

    子矩阵 在父亲矩阵中使用的引用!所以也会改变 父亲矩阵!
    除非 X[:2, :3].copy() —— 来进行非引用拷贝

    Reshape

    不改变 原来的数据、而是改变成矩阵!但是需要复制!不会

    • B = x.reshape(1, 10)
    • B

    注意这个有两个维度!

    • array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
    • x.reshape( 2, -1)

    注意这里是让 x转化成两行的元素,自动化分列数

    np.array的合并和分割

    np.concatenate()

    • A = np.array([[1, 2, 3],
      [4, 5, 6]])
    • np.concatenate([A, A])

    array([[1, 2, 3],
    [4, 5, 6],
    [1, 2, 3],
    [4, 5, 6]])

    • np.concatenate([A, A], axis=1)
    • array([[1, 2, 3, 1, 2, 3],
      [4, 5, 6, 4, 5, 6]])

    默认为:(轴)axis=0,表示进行第一维度链接
    等于1 表示进行第二维度连接

    • np.concatenate([A, z.reshape(1, -1)])

    注意concat 只能进行相同纬度的叠加!需要把z向量转化为 矩阵!

    • np.vstack([A, z])

    进行A z的纵向链接, 相当于加上一行,在自己这一行后面

    • np.hstack([A, z]) #加上一列

    进行A z的横向矩阵链接, 相当于加上一列,在自己这一行一列 后面

    强制转化 数据类型

    x = np.array( X, dtype=float )

    np.slit()

    • x1, x2, x3 = np.split(x, [3, 7])

    切分点 0–2 3–6 7–9(x = 0–9)

    • A1, A2 = np.split(A, [2], axis=1)

    切分矩阵,默认0-第一维度-行方向 第二行切割注意:矩阵是从第0行开始的!,所以 第二行在A2中!

    • upper, lower = np.vsplit(A, [2])

    进行垂直方向 上下切分矩阵。

    • left, right = np.hsplit(A , [2])

    进行水平方向 进行左右切分

    • y = array([[ 3],
      [ 7],
      [11],
      [15]])

    为了进行4行1列的矩阵–转变为向量

    • y[:, 0]

    抽出所有的行,只要第一列。变为:array([ 3, 7, 11, 15]) —— 向量了!

    是为了,对数据进行 预处理而进行学习使用的!

    np.delete()

    X.shape

    (150,2)
    X_new = np.delete( X, 138, axis=0 )
    直接把X的第138行给删除了

    numpy.array中的运算

    numpy直接就能 数组看做矩阵、向量进行运算!

    Universal Functions

    numpy 遵循这个直接运算要求而且快!

    直接 + - ×
    / 浮点数出发
    // 证书的出发!
    x ** 2 幂运算
    x % 2
    1 / x

    • np.abs()
    • np.sin()
    • np.cos()
    • np.tan()
    • np.exp(x) #e的x次方
    • np.power(3, x) #3的x次方
    • np.log(x) #以e为底的 函数
    • np.log2(x) # 以2为底的函数
    • np.log10(x) #以10为底的 函数

    矩阵运算

    • A + - * B

    A*B 是指对应元素及进行运算! 不是标准矩阵之间惩罚

    • A.dot(B)

    A和B 两矩阵进行标准的惩罚运算。

    • A.T

    矩阵转置方法。

    向量v和矩阵A的运算

    • v+A

    相当于: np.vstack([v] * A.shape[0]) + A

    • np.tile(v, (2, 1))

    堆叠向量v, 行堆叠2次,列堆叠1次相当于上方!

    • v*A

    v.dot(A) —— 矩阵乘法!
    A.dot(v) —— v会根据矩阵A进行 自动调整自己是行向量,还是列向量!

    矩阵的逆

    • np.linalg.inv(A)

    linear algebra //线性代数
    方阵才有 逆矩阵

    • pinvA = np.linalg.pinv(X)

    伪 逆矩阵!可求出不是方阵的伪逆矩阵!

    • X.dot(pinvA)

    仍然是一个 方阵.

    向量的模

    • w1 = np.linalg.norm(w)

    求出向量w的模

    • w / w1

    对应求出 w的单位向量

    矩阵的聚合操作

    • np.sum(L)
    • np.min() / np.max()

    等同于 array.min()

    • np.sum( X, axis=0 )

    沿着行方向进行运算 相加,所以最终是列加和。

    • np.prod(X)

    X中进行乘积

    • np.mean(X) / np.median(X)

    求均值 和 中位数

    • np.percentile( big_arrary, q=50 )

    找百分位 for percent in [0,25,50,75,100]:

    • np.var(big_array) / np.std(big_array)

    求方差/ 标准差

    索引

    arg方式

    为了查看最小值,以及最小值的位置在哪

    • np.argmin(x)

    198532 == x[198532]

    排序和使用索引

    • np.random.shuffle(x)

    直接进行乱序处理

    • np.sort(x)

    返回修改后的数组

    • x.sort()

    排好x的顺序

    • np.sort(X , axis=1)

    沿着列进行排序, 把每一行排好顺序了。

    • np.argsort(x)

    拍好 索引顺序的数组,通过索引,找大小。

    • np.partition(x, 3)

    标定点3, 小于3的在左边, 大于3的在右边

    • np.argpartition(x, 3)

    仍然是进行 索引的标定3

    将数组打乱随机排列 两种方法:

    • np.random.shuffle(x):在原数组上进行,改变自身序列,无返回值。
    • np.random.permutation(x):不在原数组上进行,返回新的数组,不改变自身数组。

    Fancy Indexing

    • x[3:9:2]

    2为步长 进行索引

    • ind = [3, 5 ,8]
    • x[ind]

    对应进行索引!

    • ind = np.array([[0, 2], [1, 3]])
    • x[ind]

    对应进行索引,根据ind索引,建立 新的x矩阵。

    • col = np.array([1, 2, 3])
    • x[:2, col]

    x中前两行的第0行 和 第1行, 1 2 3列

    • col = [True, False, True, False]

    x[ 1:3, col]

    numpy.array的比较

    • example_digits = noisy_digits[y==0,:][:10]

    只要对应前十行

    • x > 3

    返回bool值

    • np.sum(x<=3) //统计x中 小于等于3的个数。

    np.count_nonzero(x<=3)

    • np.any(x==0) //true 有就行

    np.all(x>=0) //true

    • np.sum( x%2==0 )

    np.sum(x%2==0, axis=1)

    • np.all( x > 0, axis=1 )

    np.sum( (x>3) & (x<10) )

    • np.sum( (x%2==0) | (x > 10) )

    np.sum( ~(x==0) )

    • x[x[:,3]%3==0, :]

    最后一列被三整除为 0,3个True——转化为第0行和第3行

    Pandas

    • Pandas进行预处理——然后转化为 numpy——再把numpy加入到 sklearn之中进行处理、操作!

    以上!numpy进行机器学习矩阵进行处理的方法,完成。
    因为 sklearn是需要numpy的数据进行操作的,然而Pandas方便进行处理,所以 需要进行这样的过度。

    matplotlib 基础

    • import matplotlib as mpl
    • import matplotlib.pyplot as plt

    plt.plot绘制直线图

    • plt.plot(x, y, color=“red”, linestyle="–", label=“cos(x)” )

    应该再加上: plt.legend() 用来显示对应曲线的图例

    • plt.show()

    linestyle 绘制出来 : -, – -不同的图像形式。

    • plt.xlim(-5, 15)
    • plt.ylim(0, 1)

    更改 x,y轴的范围.

    • plt.axis([-1 ,11 ,-2 ,2])
    • plt.xlabel(""x value)/ pltylabel(“y value”)
    • plt.title(“添加对应标题.”)

    plt.scatter 绘制散点图

    • plot.scatter(x, siny, alpha=0.5)

    通常绘制二维特征/两个特征的时候 用散点图。
    不透明度—— 0完全透明,1完全不透明。

    • plt.scatter(X[y0,0], X[y0,1], color=“red”, marker=“o”)
      plt.scatter(X[y1,0], X[y1,1], color=“blue”, marker="+")
      plt.scatter(X[y2,0], X[y2,1], color=“green”, marker=“x”)
      plt.show()

    高斯核函数讲解

    l1, l2 = -1, 1
    
    X_new = np.empty((len(x), 2))
    # 将一维数据 映射到二维上面了,利用 高斯核函数.
    for i, data in enumerate(x):
        X_new[i, 0] = gaussian(data, l1)
        X_new[i, 1] = gaussian(data, l2)
    
    # enumerate( x ) 讲x的数值放入到data中,索引放入到i中.
    

    关键学会 enumerate的使用。

    读取数据和简单的数据探索

    • from sklearn import datasets
    • iris = datasets.load_iris() # 鸢尾花数据集
    • iris.keys()
    • iris.data #相对应的数据
    • iris.target #相对应的种类
        y = iris.target
        plt.scatter(X[y==0,0], X[y==0,1], color="red")  #找出鸢尾花对应的种类所在行,
        #然后显示  这一行的,0\1两个特征~ OK~
        plt.scatter(X[y==1,0], X[y==1,1], color="blue")
        plt.scatter(X[y==2,0], X[y==2,1], color="green")
        plt.show()
    

    数据处理代码操作注意事项

    使用copy()数值
    y = digits.target
    y = digits.target.copy() # 这样写作为一个拷贝才正确

    使用try except
    try:
    return 2 * precision * recall / (precision + recall)
    except:
    return 0.0

    展开全文
  • 1.等高线图 plt.figure() plt.contourf(X,Y,y_pre,100,cmap='jet',extend='both') X,Y是一维坐标,如果需要可以将值网格化求出X,Y,y_pre是一个二维矩阵,通常np.array(y_pre)[0]*np.array(y_pre)[1]等于len(X),...
  • 数据分析最常用matplot基础使用笔记,大家可以直接复制修改相关属性就可以看到前后的对比效果,本人编辑器pycharm# -*- coding:utf-8 -*-""" @author: Fane @file: matplotlibTest.py @time:2017/8/12 22:01 """ ...
  • 机器学习中,比较热门的语言Python。其中以Numpy、Pandas、Matplotlib为常用。... Anacoda正确的使用姿势 Notebook基本使用 matplot之基本框绘制 matplot之折线图优化 matplot之区域画多图 matplot之其他操作
  • 其中以Numpy、Pandas、Matplotlib为常用。 本套课程就给大家讲解下Matplotlib的相关用法. Anacoda正确的使用姿势 Notebook基本使用 matplot之基本框绘制 matplot之折线图优化 matplot之区域画多图 matplot之...
  • python的绘图包matplot

    2021-01-13 23:04:29
    Matplot绘图 导包:from matplotlib import pyplot as plt 常用方法: show():一般在最后面做图形显示,plt.show() plot():功能是传递数据,让其绘制图形,并且返回的是一个Line2D对象(每条线一个) 如果接受的...
  • 环境搭建 Anaconda 集成了数据分析、科学计算相关的常用的安装包,如Numpy,Scipy,Matplot、Ipython等。 下载地址:https://www.anaconda.com/download/
  • Matplotlib 里的常用类的包含关系为Figure -> Axes -> (Line2D, Text, etc.)一个Figure对象可以包含多个子图(Axes),在matplotlib中用Axes对象表示一个绘图区域,可以理解为子图。demo1:曲线图和直线图#!/usr/...
  • PythonGIS可视化—Matplot basemap工具箱

    千次阅读 2014-07-13 14:36:42
    在数据可视化过程中,我们常常需要将数据根据其采集的地理位置在地图上显示出来。比如说我们会想要在地图上画...Matplot是python上常用的一个数据绘制包。它基于numpy(numpy是python用于数组运算的一个包)。Matplot具有
  • 其中以Numpy、Pandas、Matplotlib为常用。 本套课程就给大家讲解下Matplotlib的相关用法. Anacoda正确的使用姿势 Notebook基本使用 matplot之基本框绘制 matplot之折线图优化 matplot之区域画多图 matplot之...
  • 在数据可视化过程中,我们常常需要将数据根据其采集的地理位置在地图上显示出来。...Matplot是python上常用的一个数据绘制包。它基于numpy(numpy是python用于数组运算的一个包)。Matplot具有强大的数据绘制功...
  • 在数据可视化过程中,我们常常需要将数据根据其采集的地理位置在地图上显示出来。... Matplot是python上常用的一个数据绘制包。它基于numpy(numpy是python用于数组运算的一个包)。Matplot具有强大的数据绘制...
  • 2. pands模块常用功能 3. 缺失值填充的几种方法 4. pandas用法大全 5. pandas的替换和部分替换(replace) 6. pandas中DataFrame修改index、columns名的方法 7.pandas.concat实现竖着拼接、横着拼接DataFrame 8.df....
  • pandas常用函数

    2020-08-03 15:28:30
    本文研究的主要是pandas常用函数,具体介绍如下。 1 import语句 ? 1 2 3 4 5 import pandas as pd import numpy as np import matplotlib.pyplot as plt import ...
  • import numpy as np import matplotlib.pyplot as plt # 线性图 x = np.linspace(-5,5,100) y1 = x * 2 + 3 y2 = (x ** 2) / 2 plt.figure(num=1,figsize=(8,5)) # plot绘制线条 l1 = plt.plot(x,y1,label='line'...
  • matplotlib常用绘图

    2021-03-26 10:30:08
    matplotlib常用绘图 参考自:嵩天老师的《python数据分析与展示》 1. 折线图 """ plt.plot(x, y, format_string, **kwargs) x : X轴数据,列表或数组,可选 y : Y轴数据,列表或数组 format_string : ...
  • Python常用数据分析工具

    千次阅读 2019-04-17 16:09:37
    Python数据分析工具 Python 本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。常用 的库有Numpy 、Scipy 、...如果你安装的是Anaconda 发行版,那么它已经自带了以下库: Numpy 、Scipy 、Matplot...
  • Python 常用模块安装锦集 免废话,直接上图: 以下为具体代码,可供copy。有点懒,勿介意! ★★★★★Python★★★★★ ★★★Anacondas模块★★★ ★ numpy pip instal l numpy scipy matplotlib ★ pandas...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

matplot常用