• 一、Numpy基础:数组创建


    Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。

    一、模块引用

    import numpy as np
    

    二、数组的创建

    这里先看一下多维度数组的格式,下例是一个三维数组,以楼房的方式理解最直观。

    [#数组一层
        [1, 3, 4, 6],#一层1单元
        [2, 5, 6, 7]#一层2单元
    ],
    [#数组二层
        [1, 3, 4, 6],#二层1单元
        [2, 5, 6, 7]#二层2单元
    ]

    注意,数组元素必须放入[]或()之间

    2.1普通创建

    一维数组创建

    np.array([1,2,3,4])
    >>>array([1, 2, 3, 4])
    

    多维数组创建

    c=np.array([
        [
            [
                [1,2],[3,4]#3维层(内部元素为思维)
            ],#2维层
            [
                [5,6],[7,8]
            ]
        ],#1维层
        [
            [
                [9,10],[11,12]
            ],
            [
                [13,14],[15,16]#3维层(内部元素为思维)
            ]#2维层
        ]#1维层
    ])
    print(c)
    >>>
    [[[[ 1  2]
       [ 3  4]]
      [[ 5  6]
       [ 7  8]]]
     [[[ 9 10]
       [11 12]]
      [[13 14]
       [15 16]]]]​
    

    2.1.1内置方法创建(arange创建)

    arange的使用方法与python内置方法range相同,这里不再赘述,看程序

    import numpy as np
    a=np.arange(20)
    b=np.arange(10,20)
    c=np.arange(10,20,2)
    d=np.arange(20,10,-1)
    print("普通玩法:",a)
    print("带起始点的玩法:",b)
    print("带步长的玩法:",c)
    print("倒着玩:",d)
    >>>
    普通玩法: [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
    带起始点的玩法: [10 11 12 13 14 15 16 17 18 19]
    带步长的玩法: [10 12 14 16 18]
    倒着玩: [20 19 18 17 16 15 14 13 12 11]
    

    2.1.2内置方法创建(random创建)

    与random模块不同,这个random是numpy内置的方法,用法上是相同的,同样看程序

    import numpy as np
    a=np.random.random((2,2))#0~1的随机数
    b=np.random.randn(2,2)#符合正态分布的随机数
    c=np.random.randint(2,10,(2,2))#从2~10的随机整数
    print("0~1的随机数:",a)
    print("正态分布的随机数:",b)
    print("从2~10的随机整数:",c)
    >>>
    0~1的随机数: [[0.93614432 0.56444734] [0.29267612 0.38625066]] 正态分布的随机数: [[-1.26606533 0.68466118] [ 0.34377799 0.1318619 ]] 从2~10的随机整数: [[4 8] [9 6]]

    numpy.random下所有创建方式如下表所示:

    方法名称 解析
    rand(d0, d1, ..., dn) 随机值。
    randn(d0, d1, ..., dn) 返回一个样本,具有标准正态分布。
    randint(low[, high, size]) 返回随机的整数,位于半开区间 [low, high)。
    random_integers(low[, high, size]) 返回随机的整数,位于闭区间 [low, high]。
    random_sample([size]) 返回随机的浮点数,在半开区间 [0.0, 1.0)。
    choice(a[, size, replace, p]) 生成一个随机样本,从一个给定的一维数组。

    2.1.3内置方法创建(等差等比创建)

    np.linspace (起始值,终止值,元素总数):创建一维等差数组。
    np.logspace(起始值,终止值,元素总数):创建一维等比数组。

    import numpy as np
    a=np.linspace(0,10,5)
    b=np.logspace(0,2,5)
    print("等差数组:",a)
    print("等比数组:",b)
    >>> 等差数组: [ 0. 2.5 5. 7.5 10. ] 等比数组: [ 1. 3.16227766 10. 31.6227766 100. ]

    2.1.4内置方法创建(特殊构造)

    np.zeros(shape, dtype=float, order='C'):创建一个全0数组,shape要以元组格式传入。
    np.ones(shape, dtype=None, order='C'):创建一个全1数组,shape要以元组格式传入。
    np.empty(shape, dtype=None, order='C'):创建一个拥有趋近0值的数组,shape要以元组格式传入。
    np.eye(N, M=None, k=0, dtype=float, order='C'):创建一个对角矩阵,N代表行,M代表列。其中有个参数k默认值为0,它代表偏移量,正1时向主对角线右上偏移1位,负1时向主对角线左下偏移1位。
    np.full(shape, fill_value, dtype=None, order='C'):创建一个以fill_value进行填充的数组,fill_value为想要填充的值

    import numpy as np
    a=np.zeros((2,2))
    b=np.ones((2,2))
    c=np.empty((2,2))
    d=np.eye(2, 2, 0)
    e=np.full((2,2), 17)
    print("全0数组:",a)
    print("全1数组:",b)
    print("趋近0数组:",c)
    print("对角矩阵:",d)
    print("全17数组:",e)
    >>>
    全0数组: [[0. 0.]
     [0. 0.]]
    全1数组: [[1. 1.]
     [1. 1.]]
    趋近0数组: [[9.90263869e+067 8.01304531e+262]
     [2.60799828e-310 0.00000000e+000]]
    对角矩阵: [[1. 0.]
     [0. 1.]]
    全17数组: [[17 17]
     [17 17]]
    

      

      

  • 相关阅读:
    Chrome 和 FireFox 查看伪类:active,:hover,:focus样式
    为什么需要清除浮动float,及解决办法
    Chrome 控制台使用之配置网速
    Vue 和 浏览器 之Vue项目在浏览器中运行并使用debug
    CSS里不为人知的秘密(02)之常见属性使用
    ImageMagick 简单使用
    php 使用gmail发送邮件之---gmail授权申请开通
    vue复习知识记录【2】 v-if v-show vfor
    vue复习知识记录【1】 绑定字段、绑定事件、使用方法、使用计算
    解决Selenium下使用Firefox的findElement速度非常慢的问题
  • 原文地址:https://www.cnblogs.com/hezhefly/p/8278842.html
Copyright © 2020-2023  润新知