Python 如何排列Tensorflow 3-张量的行/列?

Python 如何排列Tensorflow 3-张量的行/列?,python,numpy,tensorflow,Python,Numpy,Tensorflow,我有一个(N,9,9)形状的张量流张量T和排列Px,Py,看起来像这样:[3 4 5 6 7 8 2 1 0],[6 8 2 0 3 7 1 5] 我想将置换Px应用于T的第一个轴,Py应用于第二个轴。也就是说,我想计算一个由 S_i,j,k=T_i,Px(j),Py(k) 要使用tf.gather和构造S,我需要构造一个索引张量 indices[i,j,k,0] = i indices[i,j,k,1] = Px(j) indices[i,j,k,2] = Py(k) 构建索引(Python

我有一个(N,9,9)形状的张量流张量T和排列Px,Py,看起来像这样:
[3 4 5 6 7 8 2 1 0]
[6 8 2 0 3 7 1 5]

我想将置换Px应用于T的第一个轴,Py应用于第二个轴。也就是说,我想计算一个由

S_i,j,k=T_i,Px(j),Py(k)

要使用
tf.gather和
构造S,我需要构造一个
索引
张量

indices[i,j,k,0] = i
indices[i,j,k,1] = Px(j)
indices[i,j,k,2] = Py(k)

构建
索引(Python)最干净的方法是什么?

如果我没有正确理解您的问题陈述,我相信这就是您需要的

indices[:,:,:,0] = np.arange(indices.shape[0])
indices[:,:,:,1] = indices[:,Px(np.arange(indices.shape[1]),:,1]
indices[:,:,:,2] = indices[:,:,Py(np.arange(indices.shape[2]),2]
如果没有最低限度的可复制性,很难说