zoukankan      html  css  js  c++  java
  • 科学计算与可视化

    (1)numpy以及matplotlib的学习总结及应用

    NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了CPython的GIL(全局解释器锁),运行效率极好,是大量机器学习框架的基础库!

    NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:

    • 一个强大的N维数组对象ndrray;
    • 比较成熟的(广播)函数库;
    • 用于整合C/C++和Fortran代码的工具包;
    • 实用的线性代数、傅里叶变换和随机数生成函数

    Numpy中定义的最重要的对象是成为ndarray的N维数组类型。它描述相同类型的元素集合。可以使用基于零的索引访问集合中的项目。

    ndarray属性:ndim属性,表示维度个数;shape属性,表示各维度大小;dtype属性,表示数据类型。

    实例:

    import numpy
    print ('使用列表生成一维数组')
    data = [1,2,3,4,5]
    x = numpy.array(data)
    print(x)
    print (x.dtype)
    print(x.ndim)
    print(x.shape)
    
    
    print ('使用列表生成二维数组')
    data = [[1,0],[2,0],[3,3]]
    x = numpy.array(data)
    print (x) 
    print (x.ndim) 
    print (x.shape)

    效果如下:

    matplotlib:

    概述:matplotlib是基于numpy的一套Python工具包。这个包提供了丰富的数据绘图工具,主要用于绘制一些统计图形。

    在代码执行过程中,有两种方式更改参数:

    • 使用参数字典(rcParams)
    • 调用matplotlib.rc()命令 通过传入关键字元祖,修改参数

    如果不想每次使用matplotlib时都在代码部分进行配置,可以修改matplotlib的文件参数。可以用matplot.get_config()命令来找到当前用户的配置文件目录。

    配置文件包括以下配置项:

    axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示
    backend: 设置目标暑促TkAgg和GTKAgg
    figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置
    font: 字体集(font family)、字体大小和样式设置
    grid: 设置网格颜色和线性
    legend: 设置图例和其中的文本的显示
    line: 设置线条(颜色、线型、宽度等)和标记
    patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
    savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。
    verbose: 设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。
    xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。

    用来该表线条的属性

    线条风格linestyle或ls描述线条风格linestyle或ls描述
    ‘-‘ 实线 ‘:’ 虚线  
    ‘–’ 破折线 ‘None’,’ ‘,’’ 什么都不画  
    ‘-.’ 点划线  

    线条标记

    标记maker描述标记描述
    ‘o’ 圆圈 ‘.’
    ‘D’ 菱形 ‘s’ 正方形
    ‘h’ 六边形1 ‘*’ 星号
    ‘H’ 六边形2 ‘d’ 小菱形
    ‘_’ 水平线 ‘v’ 一角朝下的三角形
    ‘8’ 八边形 ‘<’ 一角朝左的三角形
    ‘p’ 五边形 ‘>’ 一角朝右的三角形
    ‘,’ 像素 ‘^’ 一角朝上的三角形
    ‘+’ 加号 竖线
    ‘None’,’’,’ ‘ ‘x’ X

    (2)成绩雷达图:

    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    plt.rcParams['font.family']='SimHei'
    
    labels=np.array(['总成绩','单选','程序题','剩余用时','复写率'])
    nAttr=5
    data=np.array([9.5,9,10,6,9])
    angles=np.linspace(0,2*np.pi,nAttr,endpoint=False)
    data=np.concatenate((data,[data[0]]))
    angles=np.concatenate((angles,[angles[0]]))
    fig=plt.figure(facecolor='white')
    plt.subplot(111,polar=True)
    plt.plot(angles,data,'b*-',color='y',linewidth=3)
    plt.fill(angles,data,facecolor='g',alpha=0.25)
    plt.thetagrids(angles*180/np.pi,labels)
    plt.figtext(0.52,0.95,'python的成绩表',ha='center')
    plt.grid(True)
    plt.savefig('scorce_radar.JPG')
    plt.show()

    效果:

  • 相关阅读:
    利用JS实现的根据经纬度计算地球上两点之间的距离
    html中meta标签作用详解
    Jquery Highcharts 参数配置说明
    Properties类的使用示例
    利用数据库模版创建方便部署的.Net项目调试环境
    ASP.NET修改Web.Config文件(对xml的操作)
    创建动态数据输入用户界面
    DataGrid相关知识总结(收集自各位老大处)
    在C#.net中如何操作XML
    C#中使用反射的性能分析
  • 原文地址:https://www.cnblogs.com/zk1135/p/10749417.html
Copyright © 2011-2022 走看看