• 矩阵拼接


    增加维度

    高纬度打印出来很不好观察,所以打印出来shape更加容易理解维度的增加,

    此外一维向量a=np.array([1,2,3]), a[:,None],相当于变为二维并转置了shape=(3,1)

    b

            Out[16]: 

            array([[123],

                   [456],

                   [789]])

       

    b.shape

            Out[17]: (33)

    b[None,:,:].shape

            Out[18]: (133)

    b[:,None,:].shape

            Out[19]: (313)

    b[:,:,None].shape

            Out[20]: (331)

     

     

    维度叠加

    ##np.stack()axis参数的理解

     

    假设ABCshape = (3,3)

    axis = 0 将(3x3)的矩阵看为整体单位,从上往下堆

    axis = 1 ABC中的行作为整体单位,从上往下堆

    axis = 2 ABC中的单个数作为整体,从左往右堆

       

    = np.  array([[123],

                   [456],

                   [789]])

    = np.  array([[123],

                   [456],

                   [789]])

    = np.  array([[123],

                   [456],

                   [789]])

     

    np.stack([A,B,C], axis=0)

     

    np.stack([A,B,C], axis=1)

    np.stack([A,B,C], axis=2)

     

     

    opencv的cv2.hconcat和 cv2.vconcat

     

    import cv2

    import numpy as np

       

    data1 = np.array([[123],

                      [456],

                      [789]])

       

    hdata = cv2.hconcat([data1,data1,data1])#水平方向拼接,三维的很迷惑,改变的是二维度的信息,在第二个维度上进行纵向拼接。

    vdata=cv2.vconcat([data1,data1,data1])#垂直方向拼接,np.r_

    print(hdata)

    print("\n")

    print(vdata)

     

     

    Numpy中np.c_和np.r_

    np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。

    np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。

    import numpy as np

       

    data1 = np.array([ [[12],

                       [34]],

                      [[56],

                       [78]],

                      [[10,11],

                       [12,13]] ])

       

    print(data1.shape)  # (3三维, 2二维, 2一维)

    data_c = np.c_[data1, data1, data1]

    data_r = np.r_[data1, data1, data1]

    print(data_c)  主要是在第一个维度上横向拼接

    print(data_c.shape)  # (3, 2, 6)

    print("\n"*3)

    print(data_r)  主要是在三维度上拼接,直接压落落,放在上面,这种是多种图片的集合拼接

    print(data_r.shape)  # (9, 2, 2)

     

    data_c data_r

     

     

     

     

     

     

     

     

  • 相关阅读:
    vs2008.net多语言实现方法
    C#中 Process的扩展类ProcessExtensions
    C#获取当前系统信息的类
    非常好用的GridView控件yyControls中的SmartGridView
    Android提供两个常用的消息弹出框【Toast和Alert】
    [置顶] Asp.net中实现多语言的Page的扩展的基类
    C# word类库
    在系统出现未处理的错误时,在Global的Application_Error记录下错误
    向大家推荐一个非常好用的JS日历控件My97DatePicker
    网页代码测试工具集合
  • 原文地址:https://www.cnblogs.com/eeee/p/15894384.html
Copyright © 2020-2023  润新知