人工智能学习笔记.2

NumPy创建数组

  • NumPy数组创建

    • 导入numpy模块

      >>>import numpy as np
      
    • 将整数列表转化为numpy数组

      >>>a=np.array([1,2,3])
      
    • 查看数组对象类型

      >>>a.dtype
      
    • 转换多维数组

      >>>c=np.arry([[1,2,3],[4,5,6]])
      
    • 生成全0或全1数组

      >>>np.zeros((2,3))
      >>>np.ones((3,4))
      
    • 生成未初始化的随机数组

      >>>np.empty([2,3])
      
    • 用arange方法创建给定范围内数组

      >>>np.arange(10,30,5)
      array([10,15,20,25])
      
  • numpy的random模块

    • 生成3*2的符合(0,1)均匀分布的随机数数组

      >>>np.random.rand(3,2)
      
    • 生成一组符合标准正态分布的随机数数组

      >>>np.random.randn(3)
      
    • 生成0到2范围内长度为5的数组

      >>>np.random.randint(3,size=5)
      
  • numpy数组索引

    • 创建一个多维数组b

      >>>b=np.random.random((3,3))
      
    • 获取第二行第三列元素数据

      >>>b[1,2]
      
    • 获取第二列数据

      >>>b[:,1]
      
    • 获取第三列的前两行数据

      >>>b[;2,2]
      
  • 数组的基础运算

    • 创建两个不同的数组

      >>> a = np.arange(4)
      >>> b = np.array([5, 10, 15, 20])
      
    • 两个数组做减法运算

      >>> b - a
      array([ 5, 9, 13, 17])
      
    • 计算数组的平方

      >>> b**2
      array([ 25, 100, 225, 400], dtype=int32)
      
    • 计算数组的正弦值

      >>> np.sin(a)
      array([0.        , 0.84147098, 0.90929743, 0.14112001])
      
    • 数组的逻辑运算

      >>> b < 20
      array([ True, True, False, False])
      
    • 数组求均值和方差

      >>> np.mean(b)
      12.5
      >>> np.var(b)
      31.25
      
  • 数组矩阵运算

    • 创建两个不同的数组

      >>> A = np.array([[1,1],
                        [0,1]])
      >>> B = np.array([[2,0],
                        [3,4]])
      
    • 矩阵元素乘积

      >>> A * B
      array([[2, 0],
             [0, 4]])
      
    • 矩阵乘法

      >>> A.dot(B)
      array([[5, 4],
             [3, 4]])
      
    • 矩阵求逆

      >>> np.linalg.inv(A)
      array([[ 1., -1.],
             [ 0.,  1.]])
      
    • 矩阵求行列式

      >>> np.linalg.det(A)
      1.0
      
  • 数组维度变换

    • 创建一个3×4的数组

      >>> a = np.floor(10*np.random.random((3,4)))
      >>> a
      array([[4., 0., 2., 1.],
             [1., 4., 3., 5.],
             [2., 3., 7., 5.]])
      
    • 查看数组维度

      >>> a.shape
      (3, 4)
      
    • 数组展平

      >>> a.ravel()
      array([4., 0., 2., 1., 1., 4., 3., 5., 2., 3., 7., 5.])
      
    • 将数组变换为2×6数组

      >>> a.reshape(2,6)
      array([[4., 0., 2., 1., 1., 4.],
             [3., 5., 2., 3., 7., 5.]])
      
    • 求数组的转置

      >>> a.T
      array([[4., 1., 2.],
             [0., 4., 3.],
             [2., 3., 7.],
             [1., 5., 5.]])
      >>> a.T.shape
      (4, 3)
      
    • -1维度表示NumPy会自动计算该维度

      >>> a.reshape(3,-1)
      array([[4., 0., 2., 1.],
             [1., 4., 3., 5.],
             [2., 3., 7., 5.]])
      
  • 数组合并与切分

    • 按行合并代码清单1-7中的A数组和B数组

      >>> np.hstack((A, B))
      array([[1, 1, 2, 0],
             [0, 1, 3, 4]])
      
    • 按列合并A数组和B数组

      >>> np.vstack((A, B))
      array([[1, 1],
             [0, 1],
             [2, 0],
             [3, 4]])
      
    • 创建一个新数组

      >>> C = np.arange(16.0).reshape(4, 4)
      >>> C
      array([[  0.,   1.,   2.,   3.],
             [  4.,   5.,   6.,   7.],
             [  8.,   9.,  10.,  11.],
             [ 12.,  13.,  14.,  15.]])
      
    • 按水平方向将数组C切分为两个数组

      >>> np.hsplit(C, 2)
          [array([[  0.,   1.],
                  [  4.,   5.],
                  [  8.,   9.],
                  [ 12.,  13.]]),
           array([[  2.,   3.],
                  [  6.,   7.],
                  [ 10.,  11.],
                  [ 14.,  15.]])]
      
    • 按垂直方向将数组C切分为两个数组

      >>> np.vsplit(C, 2)
      [array([[ 0.,  1.,  2.,  3.],
              [ 4.,  5.,  6.,  7.]]),
       array([[  8.,   9.,  10.,  11.],
              [ 12.,  13.,  14.,  15.]])]
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值