python numpy随笔(数组的筛选、布尔、转换、连接、切分)

  1. 布尔与筛选
    import numpy as np
    
    a = np.arange(1, 10)
    b = np.arange(1, 10).reshape(3, 3)
    
    # 判断a 数组中小于5的元素
    print(a < 5)  # 输出 [ True  True  True  True False False False False False]
    
    # 筛选出a 数组中小于5的元素,
    print(a[a < 5])  # 输出 [1 2 3 4]
    
    # 筛选出b 数组中小于5的元素,这里二维数组生成同样是一维数组
    print(b[b < 5])  # 输出 [1 2 3 4]
  2. 转换
    import numpy as np
    
    a = np.arange(1, 10)
    b = np.arange(1, 10).reshape(3, 3)
    c = np.arange(1,13).reshape(3,4)
    
    # 将一维数组转为二维数组
    A = a.reshape(3,3)
    
    # 将二数组c为一维数组
    C = c.ravel() # or c.shape = (12)
    
    # 矩阵转置
    B = b.transpose()
  3. 连接
    import numpy as np
    
    a = np.zeros((3,3))
    b = np.ones((3,3))
    arr = np.array([2,2,2])
    
    # 把数组b垂直连接到a
    c = np.vstack((a,b))
    
    # 把数组b水平连接到a
    d = np.hstack((a,b))
    
    # 多个数组水平连接操作
    e = np.column_stack((a,b,arr))
    
    # 多个数组垂直连接操作
    f = np.row_stack((a,b,arr))
  4. 切分
    import numpy as np
    
    a = np.arange(16).reshape((4, 4))
    
    # 将数组水平切分为2份
    [A, B] = np.hsplit(a, 2)
    
    # 将数组水平切分为2份
    [C, D] = np.vsplit(a, 2)
    
    # 使用np.split()切分
    # np.split(ary,indices_or_sections,axis=0)
    # ary : 数组
    # indices_or_sections :如果为整数则平均切分,如果为整数则按列切分
    # axis : 如果为0则按行切分,如果则按列切分
    [A1, A2] = np.split(a, indices_or_sections=2, axis=0)
    # 切分为第一行,第二三行,第四行
    [A3, A4, A5] = np.split(a, indices_or_sections=[1, 3], axis=0)

猜你喜欢

转载自blog.csdn.net/fm345689/article/details/88623459
今日推荐