美文网首页我爱编程
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