美文网首页我爱编程
python(numpy)的使用

python(numpy)的使用

作者: 蜀山小萌仙 | 来源:发表于2018-05-27 16:10 被阅读0次

    (一).创建数组

    import numpy as np(导入numpy模块)

    1.创建基本数组

    (1).arr = np.array([1,2,4,8,0])   #列表转为数组

         list = arr.tolist() / list = list(arr)   #数组转为列表

    (2).arr = np.arange(start,stop,step) / np.arange(num)   #创建指定范围的序列数组

         如:arr=np.arange(4) --> arr = array([0, 1, 2, 3])

              arr=np.arange(1,10,2) --> arr = array([1, 3, 5, 7, 9])

    (3).arr = np.linspace(start,stop,num,endpoint=True)   #创建指定元素数目的序列数组

         参数说明:num(元素数目) endpoint(是否包含终值stop:默认为True)

        如:arr = np.linspace(1,3,4) --> array([1. , 1.6, 2.3, 3. ])

             arr = np.linspace(1,3,4,endpoint=False) --> array([1. , 1.5, 2. , 2.5])

    (4).创建元素为全为0的数组:

         arr = mp.zeros(3)   ==>   array([0.,0.,0.]) 

        arr = np.zeros((2,2))   ==>   array([[0., 0.],         #创建指定行列的0数组

                                                                 [0., 0.]])

    (5).创建元素为全为1的数组:

          arr = np.ones(3)   ==>   array([1.,1.,1.])           

          arr = np.ones((1,2))  ==>   array([[1., 1.]])       #创建指定行列的1数组



    2.创建随机数组

    (1).均匀分布:

    arr = np.random.rand(2,2)            #创建元素从均匀分布(0-1)中抽取的随机数组

    arr = np.random.randn(1,3)          #创建元素从正态分布中抽取的随机数组

    (2).指定范围和数组大小:(有放回抽样)

    arr = np.random.uniform(lower=,high=,size=)   #元素值为浮点型

    如:arr = np.random.uniform(10)   ==>  5.6

        arr = np.random.uniform(1,5,2) ==>  array([3.740878, 1.817809]) 

        arr = np.random.uniform(1,5,(3,3))   ==>

                                        array([[3.76929046, 4.50555661, 4.57842665],

                                                   [1.34017685, 1.15621913, 1.67932168],

                                                   [4.51257001, 1.39338734, 2.6844305 ]])




    arr = np.random.randint(lower=,high=,size=)   #元素值为整形

    如:arr = np.random.randint(10/4.5)   ==>   3/1

        arr = np.random.randint(1.5,4.5,3)   ==>  array([1, 1, 2])


    3.生成函数分布

    (1).正态分布:

    arr = np.random.normal(loc=,scale=,size=)

    参数说明:loc(均值) + scale(标准差) + size(维度)

    如:arr = np.random.normal(loc=0,scale=1,size=(1,5))

         ==>array([[-0.24937038, 0.7299756 , 0.37299379, 0.53381091, -0.0919733 ]])

    (2).贝塔分布:

    arr = np.random.beta(a=,b=,size=)

    (3).二项分布:

    arr = np.random.binomial(n=,p=,size=,)


    4.基本属性

    (1).arr.shape / arr.dtype  / arr.reshape(n,m) (重构数组)/ arr.size(返回数组元素数)

    (二).数组计算

    1.条件运算:

    arr = np.random.randint(1,20,size=(3,5))

    arr = array([[ 4, 5, 18, 12, 13],

                        [17, 14, 10, 19, 16],

                        [ 1,  5, 16,  3,  8]])

    np.where(arr<10,0,1)     ==>   array([[0, 0, 1, 1, 1],

                                                                 [1, 1, 1, 1, 1],

                                                                 [0, 0, 1, 0, 0]])

    注:将元素值小于10的元素变为0,大于10的变为1

    ? np.where(arr[arr<10]) ==> 返回元素值小于10的索引构成的数组

    2.最大值:

    np.max(arr,axis=0):返回每列的最大值

    np.max(arr,axis=1):返回每行的最大值

    3.最小值:

    np.min(arr,axis=0):返回每列的最小值

    np.min(arr,axis=1):返回每行的最小值

    4.最值索引:

    np.argmax(arr)

    np.argmin(arr)

    5.返回元素值(唯一)及索引及出现次数:

    elem,index,count = np.unique(arr,return_index=True,return_counts=True)


    (三).数组连接

    f1 = np.random.randint(1,10,[2,2])

    f2 = np.random.randint(1,10,[2,2])

    np.vstack((f1,f2))   ==> 垂直连接

    np.hstack((f1,f2))   ==> 水平连接

    相关文章

      网友评论

        本文标题:python(numpy)的使用

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