• 【腾学汇的第1个实验代码】应用Matplotlib绘制图标分析


    在这里插入图片描述


    应用Matplotlib绘制图标分析

    # 1.创建一维数组
    # 导入包
    import numpy as np
    
    #两种方式创建一维数组
    vector = np.array([1,2,3])  #把数列转换成 nampy格式的数组
    print(vector)
    
    print(type([1, 2, 3]), type(vector))
    vector = np.arange(15)  #使用numpy.arange()方法创建给定区间,固定步长的数组或矩阵
    print(vector)
    
    """
    
    range([start, ]stop [,step])
    
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    # 2.创建多为数组
    matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(matrix)
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    # 创建指定维度且元素全部为1的数组
    one_matrix = np.ones([2,3])  #创建2*3的全1数组
    print("全1数组:\n",one_matrix)
    # 创建指定维度且元素全为0的数组
    zero_matrix = np.zeros([2,3]) #创建2*3的全0数组
    print('全0数组\n',zero_matrix)
    # 创建指定维度且元素全为随机数的数组
    rand_matrix = np.empty([2,3]) #创建2*3的全随机数组
    print('全随机数组:\n', rand_matrix) #此处生成的值不一定是0,因为刚好分配给当前函数生成值的内存上刚好是0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    #此处生成的值不一定是0,因为刚好分配给当前函数生成值的内存上刚好是0

    在这里插入图片描述

    # 3.操作数组元素
    a = np.ones([2,3])
    print(a)
    a[1,1] = 100  #将数组a的[1,1]的值修改为100
    print(a)
    
    a[0,2] = -10
    print(a)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    a = np.ones([2,3])
    # ndim: 统计数组维数,即维度的数量
    print('维度', a.ndim)
    # shape:统计数组维度值,即数组行和列
    print('形状',a.shape)
    # size:统计数组元素的综述
    print('元素个数',a.size)
    # dtype:数组元素类型
    print('元素类型',a.dtype)
    # itemsize:数组中每个元素的字节大小
    print('每个元素的字节大小',a.itemsize)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    # 1.数组的算数运算
    # 数组加、减、乘、除
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    
    print("a+b", a+b);
    print("a-b", a-b);
    print("a*b", a*b);
    print("a/b", a/b);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    import time
    num_count = 10000
    a = [i for i in range(num_count)]
    b = [i for i in range(num_count)]
    
    list_res = []
    
    t1 = time.time()
    for i in range(num_count):
        list_res.append(a[i] + b[i])
    t2 = time.time()
    list_cost = t2-t1
    # print(list_res)
    
    np_a, np_b = np.array(a), np.array(b)
    t3 = time.time()
    np_res = np_a + np_b
    t4 = time.time()
    np_cost = t4-t3
    
    print('列表迭代计算耗时 = %.8f' % list_cost) #把变量填到%.8f这个地方,保留8位小数
    print('numpy计算耗时 = %.8f' % np_cost)
    
    print(np.array_equal(np_res,np.array(list_res)),f"{np_cost/list_cost: .8f}")
    # print(np_res) 
    # 结果发现 用np做计算的耗时比直接用列表计算的耗时 减少一半,因其强大的性能,所以常被用来做数学运算
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    结果发现 用np做计算的耗时比直接用列表计算的耗时 减少一半,因其强大的性能,所以常被用来做数学运算

    在这里插入图片描述

    # 2.数组实现矩阵运算
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    
    print("a*b=",a*b)
    #numpy.dot(矩阵乘)有2种写法:①x.dot(y)②np.dot(x,y)
    print("Matrix1:",a.dot(b))
    print("Matrix2:",np.dot(a,b))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    #3.数组与标量算术运算
    a = np.array([1,2,3])
    print("a+2=",a+2)
    print("a-2=",a-2)
    print("a*2=",a*2)
    print("a/2=",a/2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    #4.一维数组的min,maX,Sum运算
    a = np.array([1,2,3])
    print("min of array:",a.min())
    print("max of array:",a.max())
    print("sum of array:",a.sum())
    
    #一维数组的exp,sgrt,square运算
    print("exp of array:",np.exp(a))
    print("sqrt of array:",np.sqrt(a))
    print("square of array:",np.square(a))
    
    e = 2.71828183  
    e ** 2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    #5.多维数组的min,max,sum运算
    a = np.array([[1,2,3],[4,5,6]])
    print("min of array:",a.min())
    #ax15=0,表示沿着纵轴进行计算
    print("min of array:",a.min(axis=0))
    #axi5=1,表示沿着纵轴进行计算
    #【数组1,数组2]
    #数组1=[1,2,3]
    #数组2=[4,5,6]
    print("min of array:",a.min(axis=1))
    print("max of array:",a.max())
    print("max of array:",a.max(axis=0))
    print("max of array:",a.max(axis=1))
    print("sum of array:",a.sum())
    print("sum of array:",a.sum(axis=0))
    print("sum of array:",a.sum(axis=1))```
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    #6.随机数组生成
    np.random.seed(42)  
    print(np.random.rand(2,3)) # 均匀随机分布,[0,1]
    print(np.random.randn(2,3)) # 正态分布
    print(np.random.randint(1,10))# [start, end]
    print(np.random.binomial(6,1))# 二项分布
    print(np.random.beta(2,3)) # beta分布
    print(np.random.normal(2,3)) #高斯正态分布
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    #7.一维数组索引、切片、送代 
    a=np.arange(10)
    print(a)#打印整个数组 
    print(a[:5])#打印数组前5个元素 
    for i in a: 
                print(a[i])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    #8.多维数组索引、切片、迭代
    a=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(a)
    #打印整个数组
    print(a[0:2,1:3])#打印数组不同维度指定元素
    # a[0:2,] = [[1,2,3],[4,5,6]]
    # a[0:2, 1:3] = [[2,3],[5,6]]
    for i in a:
        print(i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt 
    a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
    plt.hist(a,bins=[0,20,40,60,80,100])
    
    np.sort(a)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
    hist,bins=np.histogram(a,bins=[0,10,20,30,40,50,60,70,80,90,100])
    print(hist)
    print(bins)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    x = [(bins[i]+bins[i+1])/2 for i in range(len(bins)-1)]#每个柱子的中心坐标
    print("x:",x)
    y = hist  #每个柱子的高度
    plt.bar(x,y,width=bins[1]-bins[0])#width表示每个柱子的宽度
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

  • 相关阅读:
    如何理解Spring框架中的ioc?
    7-Spring架构源码分析-IoC 之注册 BeanDefinitions
    基于Flask的招聘信息可视化系统
    GPT实战系列-LangChain实现简单链
    Redisson批量操作类RBuckets和管道利器RBatch
    混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)
    git diff,stash,submodule,format-patch
    2023.11.16 hivesql高阶函数之开窗函数
    根据年月将数组拆分为以年月为key的二维数组
    水平直逼高级病理学家!清华团队提出AI基础模型ROAM,实现胶质瘤精准诊断
  • 原文地址:https://blog.csdn.net/m0_55251293/article/details/134538790