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

    一、Numpy库

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,但主要用于数组的运算。

    导入模板

    import numpy as np

    Numpy查看数组属性:

    数组元素个数:

    b.size

    数组形状:

    b.shape

    数组维度:

    b.ndim

    数组元素类型:

    b.dtype

    快速创建N维数组的api函数:

    (1)创建10行10列的数值为浮点1的矩阵:

    array_one = np.ones([10, 10])

    (2)创建10行10列的数值为浮点0的矩阵:

    array_zero = np.zeros([10, 10])

    numpy.random

    • np.random.rand(10, 10)创建指定形状(示例为10行10列)的数组(范围在0至1之间)
    • np.random.uniform(0, 100)创建指定范围内的一个数
    • np.random.randint(0, 100) 创建指定范围内的一个整数

    numpy.empty

    numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

    numpy.empty(shape, dtype = float, order = 'C')

    下面看看运用:

    >>> np.array([1, 2, 3, 4, 5])        # 把列表转换为数组
    array([1, 2, 3, 4, 5])
    >>> np.array((1, 2, 3, 4, 5))        # 把元组转换成数组
    array([1, 2, 3, 4, 5])
    >>> np.array(range(5))               # 把range对象转换成数组
    array([0, 1, 2, 3, 4])
    >>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组
    array([[1, 2, 3],
           [4, 5, 6]])
    >>> np.arange(8) # 类似于内置函数range() array([0, 1, 2, 3, 4, 5, 6, 7])

    >>> np.linspace(0, 10, 11) # 等差数组,包含11个数

    array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

    >>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点

    array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 9.09090909])

    >>> np.logspace(0, 100, 10) # 对数数组

    array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100])

    >>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5)

    array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ])

    >>> np.zeros(3) # 全0一维数组

    array([ 0., 0., 0.])

    >>> np.zeros((3,1)) # 全0二维数组,3行1列

    array([[ 0.], [ 0.], [ 0.]])

    >>> np.zeros((1,3)) # 全0二维数组,1行3列

    array([[ 0., 0., 0.]])

    二、Matplotlib库

    Matplotlib 是python上的一个2D绘图库,它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。我们可以用它生成 绘图、直方图、功率谱、柱状图、误差图、散点图等 。

    导入模板:

    import matplotlib.pyplot as plt

    散点图

    plt.scatter(X, Y, s=75, c=T, alpha=.5)

    其中X,Y分别为横纵坐标;s为点的大小(optional);c为颜色设置(optional);alpha为透明度设置(optional),是一个小于等于1的值

    附加信息:

    plt.xlim((-1, 1))  #  设置x轴范围为(-1,1)
    plt.ylim((-1, 1))  #  设置y轴范围为(-1,1)
    plt.legend()  # 显示图例
    plt.show()  #  显示绘图

    叫你一声你敢应吗 的成绩表:

    import numpy as np
    import matplotlib.pyplot as plt
    
    #标签
    labels = np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])
    #数据个数
    dataLenth = 6
    #数据
    data = np.array([46,100,93.3,100,107.5,60])
    
    angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
    data = np.concatenate((data, [data[0]])) # 闭合
    angles = np.concatenate((angles, [angles[0]])) # 闭合
    
    fig = plt.figure()
    ax = fig.add_subplot(111, polar=True)# polar参数!!
    ax.plot(angles, data, 'bo-', linewidth=2)# 画线
    ax.fill(angles, data, facecolor='b', alpha=0.55)# 填充
    ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
    ax.set_title("林树锋(学号:2019310143043)成绩雷达图", va='bottom', fontproperties="SimHei")
    ax.set_rlim(0,110)
    ax.grid(True)
    plt.show()

  • 相关阅读:
    zoj1028-Flip and Shift
    OSI七层模型基础知识及各层常见应用
    隐藏AutoCompleteTextView下拉框的滚动条
    VC++笔记七
    [置顶] 无名管道的C++封装
    张佩的Dump服务
    Oracle Autonomous Transactions(自治事务)
    Computational Geometry Template
    普通人和牛人之间的差距之举一反三能力
    关于选择
  • 原文地址:https://www.cnblogs.com/2640335699qqcom/p/12838618.html
Copyright © 2011-2022 走看看