美文网首页
[numpy]numpy创建数组的方法

[numpy]numpy创建数组的方法

作者: Franckisses | 来源:发表于2019-03-07 14:41 被阅读30次

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。可以说NumPy对于数组的操作可以达到极致。
    今天就简单的演示几个numpy中创建数组的方法:
    首先要导入numpy:

    import numpy as np
    

    1.首先我们可以使用np.array的方法,通过导入一个列表来创建一个数组。

    a = [1,2,3,4,5,6,7]
    b = np.array(a)
    b
    type(b)
    
    >>array([1, 2, 3, 4, 5, 6])
    >><class 'numpy.ndarray'>
    

    2.numpy中数组支持元素的同质性。传入的元素类型要是同一种。如果使用np.array()函数时,其中的数组类型不一致,numpy会将其转化为统一类型。

    a = np.array([3.14, 4, 2, 3])
    
    >>array([ 3.14,  4.  ,  2.  ,  3.  ])
    
    b = np.array(['nihao','wpmen',123])
    
    >>array(['nihao', 'wpmen', '123'], dtype='<U5')  # dtype="U5"表示字符串不超过5位
    

    3.如果我们想指定生成的数组的类型我们可以使用dtype。

    np.array([1, 2, 3, 4], dtype='float32')
    
    >>array([1, 2, 3, 4], dtype='float32')
    

    4.也可以使用列表推导式来生成不同的多维的数组。

    np.array([range(i, i + 3) for i in [1, 5, 10]])
    >>array([[ 1,  2,  3],
            [ 5,  6,  7],
            [10, 11, 12]])
    

    5.创建一个全0 的数组。

    np.zeros(10, dtype=int)  #创建一个数组中有10个0。
    >>array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
    
    np.zeros((3, 5), dtype=float)
    >>array([[0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0.]])
    

    6.创建一个全1的数组。

    np.ones(10,dtype=float)
    >>array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
    
    np.ones((2,4), dtype=float)
    >>array([[1., 1., 1., 1.],
             [1., 1., 1., 1.]])
    

    7.创建一个指定的数字的数组。

    np.full((3, 5), 'haha')
    >>array([['haha', 'haha', 'haha', 'haha', 'haha'],
         ['haha', 'haha', 'haha', 'haha', 'haha'],
         ['haha', 'haha', 'haha', 'haha', 'haha']], dtype='<U4')
    

    8.创建一个等差数列一样的数组。

    np.arange(0, 20, 2)
    >>array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])
    

    9.在指定的区间内生成指定个数字的等差数组。

    np.linspace(0, 1,10)  #在0到1之间生成10个等差的数字
    >>array([0.        , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
       0.55555556, 0.66666667, 0.77777778, 0.88888889, 1.        ])
    

    10.生成0到1之间的2x2的数组。

    np.random.random((2, 2))
    >>array([[0.32408551, 0.38448842],
             [0.46157336, 0.67681802]])    
    

    11.生成8个符合正态分布的随机数。

    np.random.normal(0, 1,8)
    >>array([-0.7775034 , -2.80235722,  0.38742176, -0.34604882,      
        1.57361521, -1.18428685, -0.33859573,  1.58450184, ])
    

    12.生成对角矩阵。

    np.eye(3)
    >>array([[1., 0., 0.],
            [0., 1., 0.],
            [0., 0., 1.]])
    np.eye(3,k=1)
    >>array([[0., 1., 0.],
           [0., 0., 1.],
           [0., 0., 0.]])
    #解释:
    第一个参数:输出方阵(行数=列数)的规模,即行数或列数
    第三个参数:默认情况下输出的是对角线全“1”,其余全“0”的方阵,如果k为正整数,则在右上方角
    线全“1”其余全“0”,k为负整数则在左下方第k条对角线全“1”其余全“0”。

    相关文章

      网友评论

          本文标题:[numpy]numpy创建数组的方法

          本文链接:https://www.haomeiwen.com/subject/vyjcpqtx.html