Numpy库的学习(三)

发布时间:2019-05-27 22:20:21编辑:auto阅读(1895)

    今天我们继续学习一下Numpy库的学习

    废话不多说 ,开始讲

    比如我们现在想创建一个0-14这样一个15位的数组

    可以直接写,但是很麻烦,Numpy中就给我们了一个方便创建的方法

    numpy中有一个arange函数

    import numpy as np
    print(np.arange(15))
    a =  np.arange(15).reshape(3,5)
    a

    运行这段代码以后,可以得到如下结果

    这里我们可以看到,我先打印了一下,np.arange(15)这个结果,产生一个0-14的15位数组

    然后我们将这个数据,变换成一个矩阵

    可以使用reshape这个函数,将我们生成的有序数组,按照规定的方式变换成矩阵

    reshape(3,5)这里的意思是,你将要生成的矩阵,是几行几列,这里是3行5列

    将你的数组点上shape,可以看到你的矩阵是一个3行5列的矩阵

    这个shape也是我们在使用numpy中,经常需要用到的一个函数

    下面在讲一下另外一个函数

    ndim,它的意思是,查看你所造的矩阵的维度是多少

    可以看到,我们刚刚所造的矩阵的维度是2

    如何查看当前所造的矩阵的tpey类型是什么

    它是一个int32的数据类型

    size这个函数,则是说明,我们当前的矩阵的大小是15

    也就是矩阵有15个元素

    接下来我们讲讲在Numpy中,矩阵的初始化操作

    np.zeros((3,4))

    这行代码,就将我们的矩阵进行了初始化的操作

    也就是初始化一个3行4列的矩阵,而矩阵中的元素全部为0

    这里注意的是,传参数一定是个元组的形式,而不是直接传3,4进去,这里需要注意一下

    还有一点,我们可以看到,我们生成的矩阵都是0.的类型,这说明Numpy给我们

    生成的矩阵都是float类型

    比如,我们创建一个都是1的矩阵

    np.ones((2,3,4),dtype = np.int32)

    我们这里创建一个三维矩阵,传入dtype参书,类型为int32

    可以的到如下矩阵

    现在我们创建的值,都是为1的,我们可以指定dtype,生成你想要的数据类型

    我们继续说,前面我们讲到,创建一个连续的数据

    那么我们如果想从,某一个数开始, 到某个数结束,每隔多少,我们变换某个数据

    这样可不可以呢?

    我们可以通过下面的例子说明

    可以看到这个例子,我们的一个数是,起始值,中间的数是终止值,而最后一个数

    是说,我们每次要隔几。也就相当于要加几。

    再比如:

    每次加0.5,得到上面 的矩阵

    下面在说说,numpy中的一个产生随机数的模块,也是比较常用的模块,random模块

    这里注意,是random.random,也就是说,我们在构造,随机初始化矩阵是0-1之间的一个2行3列矩阵

    下面在说另外一个函数,linspace

    可以看到这段代码,我们是从0开始,到2倍的pi结束,在这其中,随机的生成100个数据

    也就是说,从0开始,到2π结束,在这中间随机取100个值

    下面我们在说说,numpy中的加减乘除的操作

    a = np.array([(20,30,40,50)])
    b = np.arange(4)
    print(a)
    print(b)
    c = a - b
    print(c)
    c = c -1
    print(c)
    b**2
    print(b**2)
    print(a<35)

     

    我们这里定义了一个array数组,又定义了一个b,arange(4)也就是[0,1,2,3]

    那么,我先来看看如何相减,c=a-b

    得到的结果是

    [[20 29 38 47]]

     也就是说,numpy中,对于相同纬度的东西进行相减,也就是对应位置上的相减

    那么我们接着让C减去一个没有维度的,单独的数值,是什么情况

    [[19 28 37 46]]
    得到这样一个结果,也就是说,所有的元素都进行相减操作

    那么我们让b做一个平方操作,可以看到,b的所有元素都进行了平方操作。

    那么对于做大小对比的操作,我们可以看到,对每一个元素都进行了大小判断,是不是小于35,返回True False

    我们下来,看看矩阵操作

    用a*b,相当于求內积

    a.dot(b),相当于行乘以列的操作,1*2+1*3=5,以此类推得到

    [[5 4]
     [3 4]]

    print(np.dot(a,b)),也是进行一个矩阵的相乘,两种用法都可以实现。得到我们想要矩阵。

    好的,今天就先讲到这里!感觉各位阅读,欢迎点赞转发!谢谢各位支持!!

关键字