Python 基于来自另一个张量的索引创建新的张量,并与其一起分配';s值

Python 基于来自另一个张量的索引创建新的张量,并与其一起分配';s值,python,numpy,tensorflow,numpy-ndarray,Python,Numpy,Tensorflow,Numpy Ndarray,我有一个张量t看起来像这样[[0,1,1.5],[1,1,7.3],[2,0,2.3],我需要创建一个新的张量t1,形状为(3,3,1),其中t1[t[:,1:2](第一列中的元素用作第一个坐标,第二列中的元素用作第二个坐标)用t第三列中的元素分配。像这样t1=[[0.0]、[1.5]、[0.0]、[[0.0]、[7.3]、[0.0]、[2.3]、[0.0]、[0.0]]。如何在没有循环的情况下使用TensorFlow(或Numpy)中的矩阵运算 您可以使用: tf.sparse_to_dens

我有一个张量
t
看起来像这样
[[0,1,1.5],[1,1,7.3],[2,0,2.3]
,我需要创建一个新的张量
t1
,形状为(3,3,1),其中
t1[t[:,1:2]
(第一列中的元素用作第一个坐标,第二列中的元素用作第二个坐标)用
t
第三列中的元素分配。像这样
t1=[[0.0]、[1.5]、[0.0]、[[0.0]、[7.3]、[0.0]、[2.3]、[0.0]、[0.0]]
。如何在没有循环的情况下使用TensorFlow(或Numpy)中的矩阵运算

您可以使用:

tf.sparse_to_dense(tf.to_int32(t[:, :2]), [3, 3], t[:, 2])[..., None]
那么:

import numpy as np

t = np.asarray([[0,1,1.5],[1,1,7.3],[2,0,2.3]])

t1 = np.zeros([3,3,1])
t1[t[:,0].astype(int), t[:,1].astype(int),0] = t[:,2]