概述
x[:,:,None,:]-x[:,:,:,None]
None相当于在数组中多加一个维度。
输入:
x = np.arange(24).reshape((2,3,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,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]]]])
最后
以上就是安详咖啡为你收集整理的x[:,:,None,:]-x[:,:,:,None]的全部内容,希望文章能够帮你解决x[:,:,None,:]-x[:,:,:,None]所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复