Python – Numpy入门笔记(上)

Numpy

  1. 创建数组
    1. 创建元素为0或1的数组
      1. # 导入包
        import numpy as np
        
        # 创建一个3行3列的数组
        # empty:使用shape参数生成数组形状
        np.empty(shape=(3, 3))
      2. import numpy as np
        
        # eye:创建一个对角线元素全为1的数组
        np.eye(3)
      3. import numpy as np
        
        # identity:创建单位矩阵,使用参数3生成3行3列的单位矩阵
        np.identity(3)
      4. import numpy as np
        
        # ones:生成元素全部为1 的数组
        np.ones(shape=(2,4))
      5. import numpy as np
        
        # zeros:生成元素全部为0 的数组
        np.zeros(shape=(2,4))
      6. import numpy as np
        
        # full:与前面两种方法不同的是,full可以通过fill_value指定元素值
        np.full(shape=(2, 4), fill_value=4)
    2. 列表转换为数组
      1. import numpy as np
        
        # 创建一维数组
        np.array([1, 2, 3])
        
        # 创建二维数组
        np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    3. 生成随机数字
      1. import numpy as np
        
        # arange:生成起始值为1,终止值为10,步长为2的列表
        np.arange(start=1, stop=10, step=2)
        
        # 可使用array转换维度数组
      2. import numpy as np
        
        # linspace:生成起始值为1,终止值为10,生成数量为6的列表
        np.linspace(start=1, stop=10, num=6)
        
        # logspace方法类似linspace,不过是以log为刻度
        np.logspace(start=1, stop=10, num=6)
    4. 生成特殊数组
      1. import numpy as np
        
        # diag:生成对角矩阵
        np.diag([1, 2, 3, 4])
        
        # 将数组传入时,diag方法的作用就是提取数组的对角线元素
        a = np.diag([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
      2. import numpy as np
        
        # tri:生成三角矩阵,第一个参数是数组的行,第二个参数是数组的列
        np.tri(3, 5
  2. 数组索引
    1. import numpy as np
      
      a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
      # 下标为0的元素
      a[0]   
      # 下标为-1的元素,通常是数组最后一个
      a[-1]
      # 下标从1到3,且不包含3
      a[1:3]
      # 下标从2到末尾的切片
      a[2:]
      # 下标从1到5的切片,不包含5,且步长为2
      a[1:5:2]
    2. import numpy as np
      
      # 创建二维数组
      a = np.array([[1, 2, 3, 4],
                    [5, 6, 7, 8],
                    [9, 10, 11, 12],
                    [13, 14, 15, 16]])
      
      # 查看数组形状
      a.shape
      
      # 查看下标为1,下标为2的所有行元素
      a[1:3]
      
      # 选择行标为1:3,列标为1:2的所有元素
      a[1:3, 1:2]
      
      # 选择0行,2行,1列,2列的元素
      a[[0, 2], [1, 2]]
  3. 排序与查询
    1. import numpy as np
      
      # 创建二维数组
      a = np.array([[1, 6, 3, 13],
                    [16, 2, 7, 14],
                    [9, 10, 15, 12],
                    [4, 8, 11, 5]])
      
      # 按行排序
      np.sort(a, axis=0)
      
      # 按列排序:较小值在第一列,较大值在后其后列
      np.sort(a, axis=1)
      
      # axis=None 按照整体排序,数组会被压缩为一个序列
      np.sort(a, axis=None)
    2. import numpy as np
      
      # 创建二维数组
      a = np.array([[1, 6, 3, 13],
                    [16, 2, 7, 14],
                    [9, 10, 15, 12],
                    [4, 8, 11, 5]])
      
      # where方法获取矩阵内符合条件的坐标
      # 获取大于7的所有值坐标
      np.where(a > 7)
    3. import numpy as np
      
      # 创建二维数组
      a = np.array([[1, 6, 3, 13],
                    [16, 2, 7, 14],
                    [9, 10, 15, 12],
                    [4, 8, 11, 5]])
      
      # argmin & argmax :获取最大最小值得下标
      # 行最小值
      np.argmin(a, axis=0)
      # 列最小值
      np.argmin(a, axis=1)
      # 整体最小值
      np.argmin(a, axis=None)
  4. 随机数生成器
    1. import numpy as np
      
      # 生成10个随机数
      np.random.rand(10)
      # 生成三行三列的随机数组
      np.random.rand(3, 3)
      # 生成标准正态分布随机数
      np.random.randn()
      # 生成10个正态随机数
      np.random.randn(10)
      # 生成三行三列的正态随机数
      np.random.randn(3, 3)
    2. import numpy as np
      
      # randint:生成整形随机数
      # 生成[1, 10)的随机数
      np.random.randint(low=1, high=10)
      # 生成10个随机数
      np.random.randint(low=1, high=10, size=10)
      # 生成3行3列
      np.random.randint(low=1, high=10, size=(3, 3))
    3. import numpy as np
      
      # choice: 随机抽取元素中五次样本
      np.random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
      # permutation:随机重排序列
      np.random.permutation([1, 2, 3, 4, 5, 6, 7, 8, 9])
  5. 数学函数
    1. import numpy as np
      
      # linspace函数生成一个范围在0到π的等间距的11个数,然后计算正弦值、余弦值、正切值
      # 正弦函数
      np.sin(np.linspace(1, np.pi, 11))
      # 余弦函数
      np.cos(np.linspace(1, np.pi, 11))
      # 正切函数
      np.tan(np.linspace(1, np.pi, 11))
      
    2. import numpy as np
      
      # 反正弦函数、反余弦函数、反正切函数
      np.arcsin(np.linspace(0, 1, 11))
      np.arccos(np.linspace(0, 1, 11))
      np.arctan(np.linspace(0, 1, 11))
    3. import numpy as np
      
      # 弧度转角度
      np.degrees([np.pi, np.pi/2])
      # 角度转弧度
      np.radians([180, 90])
    4. import numpy as np
      
      # 指数与对数
      # 自然常数e的指数值
      np.exp([1, 2, 3, 4, 5])
      # 计算2的指数值
      np.exp2([1, 2, 3, 4, 5])
      # 计算以自然常数为底的对数
      np.log([1, np.e, ])
      # 计算以2为底的对数
      np.log2([1, np.e, ])
      # 计算以10为底的对数
      np.log10([1, np.e, ])
    5. import numpy as np
      
      # 约数
      # 四舍五入
      np.around([0.3, 1.7])
      # 四舍五入并保留整数
      np.rint([-0.2, 1.1])
      # 向0取整
      np.fix([-1.6, 1.7, 1.2])
      # 向下取整
      np.floor([-1.6, 1.7, 1.2])
      # 向上取整
      np.ceil([-1.6, 1.7, 1.2])
阅读剩余
THE END