python数据分析-numpy模块基础知识(1)

2021/7/1 22:21:42

本文主要是介绍python数据分析-numpy模块基础知识(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

呀~博主是正在学习数据分析的一员,记录的是自己学习过程中总结的知识点,肯定有不完善的地方,如有问题可以私聊我改正,共同学习进步。希望大家都能保持学习的热情,坚持自己,不断超越自己! 博客地址: qxi的博客

PS:我先简单说明一下,从统计学语言的角度来看, 一维数组 可以称为vector(向量);而二维数组可以称为matrix(矩阵);三维以上的就没有特殊名称,但是全都称为array,向量、矩阵都可以看作是数组的特殊形式。所以凡是涉及到二维数组的,我的文章里面都直接称为 矩阵 了,一维数组我有时称之为 序列 (类似列表)。 #这篇文章主要总结的是numpy模块中生成数组的几个函数,包括生成零矩阵,随机矩阵以及如何指定产生几行几列的矩阵,重点讲了array()函数,arange()函数,reshape()函数以及repeat()函数。# 1.numpy模块中的 array() 函数 ①将列表转化为矩阵,列表里每个元素为一行。 两行起就需要([[],[]])切记不要少了中括号

    import numpy as np
    array=np.array([[1,2,3],[2,2,3]])
    print(array)

②判断该矩阵的维度(都是二维),用 array.ndim ;判断几行几列,用 array.shape ;判断有多少元素,用 array.size

    import numpy as np
    array=np.array([[1,2,3],[2,2,3]])
    print(array)
    print('number of ndim:',array.ndim)
    print('shape:',array.shape)
    print('size:',array.size)

运行结果:

    [[1 2 3]
     [2 2 3]]
    number of ndim: 2
    shape: (2, 3)
    size: 6

2.定义矩阵的数据形式 整数形式:

    import numpy as np
    a=np.array([1,2,3],dtype=np.int)
    print(a)
    print(a.dtype)

运行结果,默认为32位(主要看各位安装的python版本):

    [1 2 3]
    int32

小数形式:

    import numpy as np
    a=np.array([1,2,3],dtype=np.float)
    print(a)
    print(a.dtype)

运行结果,默认为64位:

    [1. 2. 3.]
    float64

3.生成零矩阵,不用array函数了,用 zeros() ,括号内需要元组来定义生成几行几列,比如这里(3,4),注意不用少了小括号

    import numpy as np
    a=np.zeros((3,4))
    print(a)

运行结果:

    [[0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]

生成全部为1的矩阵, ones()

    import numpy as np
    a=np.ones((3,4),dtype=np.int16)
    print(a)

运行结果:

    [[1 1 1 1]
     [1 1 1 1]
     [1 1 1 1]]

生成全部为2的矩阵,直接在上面矩阵的基础上乘上2

    import numpy as np
    a=np.ones((3,4),dtype=np.int16)*2
    print(a)

运行结果:

    [[2 2 2 2]
     [2 2 2 2]
     [2 2 2 2]]
  1. empty() 随机生成矩阵,数字接近于0,注意括号内也是需要 元组

    import numpy as np
    a=np.empty((3,4))
    print(a)

运行结果:

    [[6.01347002e-154 7.13147307e+252 7.29542036e+175 9.49697009e-095]
     [2.29621239e+155 1.72979452e+156 5.86300898e-101 1.20270795e-153]
     [8.90301763e+247 6.01346953e-154 7.48960144e+247 4.47590761e-091]]

5.利用 arange() 函数生成一维数组,形式是 arange(m,n,k) ,从m显示到n,然后是以k为间隔的,左取右不取,n是不取的。

    import numpy as np
    a=np.arange(10,20,2) #2表示间隔为2
    print(a)

运行结果:

    [10 12 14 16 18]

arange(12)默认0-12,间隔为1

    import numpy as np
    a=np.arange(12)
    print(a)

运行结果:

    [ 0  1  2  3  4  5  6  7  8  9 10 11]

6.利用 reshape(m,n) 将一维数组转换为多维数组,指定生成m行n列的矩阵,这里 特别说明 一下可以用reshape((m,n))也可以把里面的括号去掉,不用元组形式也可以,不会报错。 ①指定生成几行几列矩阵

    import numpy as np
    a=np.arange(12).reshape(3,4)
    print(a)

运行结果:

    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]

reshape(m,-1)reshape(-1,m) reshape(m,-1)是将数组转化成m行,不知道多少列 reshape(-1,m)是将数组转化成m列,不知道多少行

    import numpy as np
    a=np.arange(16).reshape(2,8)
    print(a)
    print(np.arange(16).reshape(4,-1)) #列数自动计算为col=16/4=4
    print(np.arange(16).reshape(8,-1)) #列数自动计算为col=16/8=2
    print(np.arange(16).reshape(10,-1)) #由于col=16/10!=int,结果报错 

运行结果:

    [[ 0  1  2  3  4  5  6  7]
     [ 8  9 10 11 12 13 14 15]]
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]] #自动计算为4列
    [[ 0  1]
     [ 2  3]
     [ 4  5]
     [ 6  7]
     [ 8  9]
     [10 11]
     [12 13]
     [14 15]] #自动计算为2列
  1. repeat(x,n) 函数 最简单的形式repeat(x,n)的意思是重复数字x,重复n次形成 一维数组 ,具体看例子np.repeat(3,4); 当指定axis=0时,则逐行操作,增加行数,axis=0时则增加列数; 当x为数组时,则又会产生不同的情况,具体看例子

    import numpy as np
    print(np.repeat(3, 4)) #最简单的形式
    x = np.array([[1,2],[3,4]])
    print(x)
    print(np.repeat(x, 3))  #没有axis,只会变成一维数组
    print(np.repeat(x, 3, axis=1)) #增加列数
    print(np.repeat(x, 3, axis=0)) #增加行数
    print(np.repeat(x,[1,2], axis=0)) #增加行数,分别为一次和两次

运行结果:

    [3 3 3 3]  #np.repeat(3,4)的结果
    [[1 2]
     [3 4]]  #数组x
    [1 1 1 2 2 2 3 3 3 4 4 4] #	没有限定axis
    [[1 1 1 2 2 2]
     [3 3 3 4 4 4]]  #axis=1表示逐列
    [[1 2]
     [1 2]
     [1 2]
     [3 4]
     [3 4]
     [3 4]]  #axis=1表示逐列
    [[1 2]
     [3 4]
     [3 4]]

8.numpy模块中random模块的常见函数, ① random.random((m,n)) 表示随机生成m行n列的矩阵,数字是0-1之间的浮点数 ② random.randint(x,size=(m,n)) 是用size指定生成几行几列的矩阵,数子是0-x之间的整数

    import numpy as np
    print(np.random.random((2,3))) #直接用元组形式指定几行几列
    print(np.random.randint(10,size=(2,3))) #用size指定几行几列

运行结果:

    [[0.81779566 0.02860575 0.86313598]
     [0.17711258 0.1565987  0.63166456]]
    [[7 1 5]
     [3 1 5]]

9.利用 flatten() 函数将多维数组转换为一维数组

    import numpy as np
    a=np.array([[1,2,3],[4,5,6]])
    b=a.flatten()
    print(a)
    print(b)

运行结果:

    [[1 2 3]
     [4 5 6]]
    [1 2 3 4 5 6]  #变成一维数组辽

10.利用 linspace() 函数生成的也是一维数组,形式是arange(m,n,k),表示把m-n分割成k个点显示。

    import numpy as np
    a=np.linspace(1,10,5)
    print(a)

运行结果:

    [ 1.    3.25  5.5   7.75 10.  ]

然后利用reshape((m,n))生成二维数组,指定几行几列

    import numpy as np
    a=np.linspace(1,10,6).reshape((2,3))
    print(a)

运行结果:

    [[ 1.   2.8  4.6]
     [ 6.4  8.2 10. ]]

_好啦,关于numpy模块基础知识的介绍就先到这里啦~后期会持续更新的哟,欢迎大家提出问题一起学习! 我主要针对的学习对象是刚入门学习python数据分析的小伙伴哟,如果觉得对你有一点点帮助的话就点个赞呗,还可以关注我,后期可以一起学习讨论。 _ ``

 



这篇关于python数据分析-numpy模块基础知识(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程