python(numpy)的使用

(一).创建数组

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))   ==> 水平连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndar...
    L_steven的猫阅读 3,509评论 1 24
  • # -*- coding: utf-8 -*- from __future__ import division f...
    小豆角lch阅读 1,135评论 0 0
  • 一.NumPy的引入 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列...
    wlj1107阅读 1,064评论 0 2
  • 怀孕后一直坚持每天写宝贝的成长记录,对于每个月成长中出现的问题会咨询相关专业早教人士和查阅相关书籍,再来计划宝贝每...
    淇瀚妈妈阅读 713评论 0 4
  • 人海茫茫只恋君,朝思暮想到如今。 红颜粉黛皆俗客,碧玉玲珑似我心。 腹有玄机藏远志,眼如明月照凡尘。 一秋草木今安...
    良柳如烟阅读 462评论 0 11