x[:,:,None,:]-x[:,:,:,None]

本文转载于[https://blog.csdn.net/j515332019/article/details/108630901]。
x[:,:,None,:]-x[:,:,:,None]

None相当于在数组中多加一个维度。

输入:

array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
 x[:,:,None,:]

输出,形状(2,3,1,4):

array([[[[ 0,  1,  2,  3]],

        [[ 4,  5,  6,  7]],

        [[ 8,  9, 10, 11]]],


       [[[12, 13, 14, 15]],

        [[16, 17, 18, 19]],

        [[20, 21, 22, 23]]]])
x[:,:,:,None]

输出,形状(2,3,4,1):

array([[[[ 0],
         [ 1],
         [ 2],
         [ 3]],

        [[ 4],
         [ 5],
         [ 6],
         [ 7]],

        [[ 8],
         [ 9],
         [10],
         [11]]],


       [[[12],
         [13],
         [14],
         [15]],

        [[16],
         [17],
         [18],
         [19]],

        [[20],
         [21],
         [22],
         [23]]]])
x[:,:,None,:]-x[:,:,:,None]

这里相减时用到了广播机制,都先变成(2,3,4,4),再相减
输出,形状(2,3,4,4):

array([[[[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]],

        [[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]],

        [[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]]],


       [[[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]],

        [[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]],

        [[ 0,  1,  2,  3],
         [-1,  0,  1,  2],
         [-2, -1,  0,  1],
         [-3, -2, -1,  0]]]])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值