AI中必不可少的工具库numpy

  1. numpy的简介
    numpy是python中科学计算的基础包。他是一个python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅里叶变换、基本线性代数、基本统计运算和随机模拟等

  2. numpy和pandas的安装
    pip install numpy

  3. numpy

    1. 导包
      import numpy as np

    2. numpy的属性
      代码

      import numpy as np
      
      array = np.array([[1,2,3],
                        [2,3,4]])
      
      print(array)  #打印矩阵
      print('number of dim',array.ndim)  #输出矩阵的维度
      print('shape:',array.shape)  #输出矩阵的形状
      print('size:',array.size)   #输出矩阵中的元素个数
      
      

      输出

       [[1 2 3]
       [2 3 4]]
       number of dim 2
       shape: (2, 3)
       size: 6
      
    3. numpy的创建
      代码

      import numpy as np
      
      a = np.array([2,3,4],dtype=np.float32) #创建一维向量  #dtype的类型可以有 np.float32 np.float np.int32 np.int
      b = np.array([[1,2,3],
                   [2,3,4]])  #创建二维向量
      c = np.zeros((3,4))  #创建三行四列全为0的矩阵
      d = np.ones((3,4))  #创建三行四列全为1的矩阵
      e = np.empty((3,4))  #创建三行四列值接近0的矩阵
      f = np.arange(10,20,2)  #创建起始值为10,终止值为20(但不包括20),步长为2的向量
      g = np.arange(12).reshape(3,4)  #创建一个数位为12位的三行四列的矩阵
      h = np.linspace(1,10,5)  #创建一个起始值为1,中止值为10的,5段的数列
      print(a)
      print(b)
      print(c)
      print(d)
      print(e)
      print(f)
      print(g)
      print(h)
      

      输出

       [2. 3. 4.]
       [[1 2 3]
       [2 3 4]]
       [[0. 0. 0. 0.]
       [0. 0. 0. 0.]
       [0. 0. 0. 0.]]
       [[1. 1. 1. 1.]
       [1. 1. 1. 1.]
       [1. 1. 1. 1.]]
       [[1. 1. 1. 1.]
       [1. 1. 1. 1.]
       [1. 1. 1. 1.]]
       [10 12 14 16 18]
       [[ 0  1  2  3]
       [ 4  5  6  7]
       [ 8  9 10 11]]
       [ 1.    3.25  5.5   7.75 10.  ]
      
    4. numpy基本运算
      代码:

      import numpy as np
      
      a = np.array([10,20,30,40])
      b = np.arange(4)
      
      c = a + b  #加
      print(c)
      c = a - b  #减
      print(c)
      c = b**2   #幂运算
      print(c)
      c = 10*np.sin(a)  #三角函数 sin() cos() tan()  反三角函数 arcsin() arccos() arctan()
      print(c)
      print(b<3)  #判断b中的每一个元素是否小于3
      
      a = np.array([[1,1],
                    [0,1]])
      b = np.arange(4).reshape((2,2))
      c = a * b  #矩阵中的每一个元素相乘
      c_dot = np.dot(a,b)  #矩阵相乘   另一种形式  c_dot = a.dot(b)
      print(c)
      print(c_dot)
      
      a = np.random.random((2,4))  #生成一个2行4列的随机数字
      print(a)
      print(np.sum(a,axis = 0))  #进行求和  axis = 0表示的是对列进行操作   axis = 1表示的是对行进行操作
      print(np.min(a))  #求最小值
      print(np.max(a))  #求最大值
      
      A = np.arange(2,14).reshape((3,4))
      print(A)
      print(np.argmin(A))  #求最小值的索引
      print(np.argmax(A))  #求最大值的索引
      print(np.mean(A))  #求平均值
      print(np.average(A))  #求平均值
      print(np.median(A))  #求中位数
      print(np.cumsum(A))  #逐步的累加
      print(np.diff(A))  #求相邻两个数的差
      print(np.nonzero(A))  #输出值不为0的两个数组内容分别为行和列  
      print(np.sort(A))  #进行逐行排序
      print(np.transpose(A))  #进行矩阵的转置
      print(np.clip(A,5,9))  #将数值小于5的置为5,大于9的置为9,中间值不管
      

      输出:

       [10 21 32 43]
       [10 19 28 37]
       [0 1 4 9]
       [-5.44021111  9.12945251 -9.88031624  7.4511316 ]
       [ True  True  True False]
       [[0 1]
       [0 3]]
       [[2 4]
       [2 3]]
       [[0.14637532 0.77514504 0.40537369 0.58750185]
       [0.17383035 0.83159482 0.18020054 0.99902121]]
       [0.32020567 1.60673986 0.58557422 1.58652306]
       0.14637532169737644
       0.9990212129900695
       [[ 2  3  4  5]
       [ 6  7  8  9]
       [10 11 12 13]]
       0
       11
       7.5
       7.5
       7.5
       [ 2  5  9 14 20 27 35 44 54 65 77 90]
       [[1 1 1]
       [1 1 1]
       [1 1 1]]
       (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
       [[ 2  3  4  5]
       [ 6  7  8  9]
       [10 11 12 13]]
       [[ 2  6 10]
       [ 3  7 11]
       [ 4  8 12]
       [ 5  9 13]]
       [[5 5 5 5]
       [6 7 8 9]
       [9 9 9 9]]
      
    5. numpy索引
      代码:

      import numpy as np
      
      A = np.arange(3,15)
      print(A[3])  #输出第4个数字
      A = np.arange(3,15).reshape((3,4))
      print(A[2])  #输出第三行  print(A[2,:])
      print(A[1][1])  #输出第二行第二列的数值  print(A[1,1])
      print(A[:,1])  #返回第一列的所有数
      print(A[1,1:3])  #返回第一行 第一到第三列的数值
      for row in A:
          print(row)  #迭代行
      for column in A.T:
          print(column)  #迭代列
      print(A.flatten())  #将A转换成一维的数组
      for item in A.flat:
          print(item)  #迭代每一个项
      

      输出:

       6
       [11 12 13 14]
       8
       [ 4  8 12]
       [8 9]
       [3 4 5 6]
       [ 7  8  9 10]
       [11 12 13 14]
       [ 3  7 11]
       [ 4  8 12]
       [ 5  9 13]
       [ 6 10 14]
       [ 3  4  5  6  7  8  9 10 11 12 13 14]
       3
       4
       5
       6
       7
       8
       9
       10
       11
       12
       13
       14
      
    6. numpy中array的合并和分割

      1. 合并
        代码:

        import numpy as np
        
        A = np.array([1,1,1])
        B = np.array([2,2,2])
        C = np.vstack((A,B))  #将A和B进行垂直合并
        D = np.hstack((A,B))  #将A和B进行水平合并
        print(C)
        print(D)
        

        输出:

         [[1 1 1]
          [2 2 2]]
         [1 1 1 2 2 2]
        
      2. 分割
        代码:

        import numpy as np
        
        A = np.arange(12).reshape(3,4)
        print(A)
        print(np.split(A,2,axis=1))  #将A按列分成两块  第一个参数表示数组,第二个参数表示分割的块数,第三个参数是维度 这个函数智能进行均等分块 不能进行不均等分块
        print(np.split(A,3,axis=0))
        print(np.array_split(A,3,axis=1))  #将A按列进行不等量的分割
        print(np.vsplit(A,3))  #将A进行纵向分割成3块
        print(np.hsplit(A,2))  #将A进行横向分割成2块
        

        输出:

         [[ 0  1  2  3]
          [ 4  5  6  7]
          [ 8  9 10 11]]
         [array([[0, 1],
                [4, 5],
                [8, 9]]), array([[ 2,  3],
                [ 6,  7],
                [10, 11]])]
         [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
         [array([[0, 1],
                [4, 5],
                [8, 9]]), array([[ 2],
                [ 6],
                [10]]), array([[ 3],
                [ 7],
                [11]])]
         [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
         [array([[0, 1],
                [4, 5],
                [8, 9]]), array([[ 2,  3],
                [ 6,  7],
                [10, 11]])]
        
    7. copy和deep copy
      代码:

      import numpy as np
      
      #copy  a、b、c、d都只指向同一个内容
      a = np.arange(4)
      b = a
      c = a
      d = b
      a[0] = 11
      print(a)
      print(b)
      print(c)
      print(d)
      #deep copy  a、b分别指向不同的内容
      a = np.arange(4)
      b = a.copy()
      a[0:3] = [11,22,33]
      print(a)
      print(b)
      

      输出:

       [11  1  2  3]
       [11  1  2  3]
       [11  1  2  3]
       [11  1  2  3]
       [11 22 33  3]
       [0 1 2 3]
      

下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习、计算机视觉等系列文章。
在这里插入图片描述
如果你对JAVA方面感兴趣,可以关注下面JAVAERS公众号,陪你一起学习,一起成长,一起分享JAVA路上的诗和远方。在公众号里面都是JAVA这个世界的朋友,公众号每天会有技术类文章,面经干货,也有进阶架构的电子书籍,如Spring实战、SpringBoot实战、高性能MySQL、深入理解JVM、RabbitMQ实战、Redis设计与实现等等一些高质量书籍,关注公众号即可领取哦。
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XXXXiaojie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值