假设我有两个数组X=[A,B,C]和Y=[D,E,F],其中每个元素都是一个3 × 3的矩阵。我想在不使用for循环的情况下创建一个数组Z=[AD,BE,CF]。我该怎么做?我试过使用np.tensordot(X,Y,axis=1),但它返回9个乘积[[AD,AE,AF],[BD,BE,BF],[CD,CE,CF]]。麻烦的是每个元素的矩阵大小必须与数组长度相同,比如说对于3 x 3矩阵,X和Y应该各有3个元素。
pcww981p1#
你可以使用Tensor或流量。
>>> a = tf.constant([1, 2, 3]) >>> b = tf.constant([4, 5, 6]) >>> tf.transpose([a, b]) <tf.Tensor: shape=(3, 2), dtype=int32, numpy= array([[1, 4], [2, 5], [3, 6]], dtype=int32)>
也可以使用zip
a = ("John", "Charles", "Mike") b = ("Jenny", "Christy", "Monica") x = zip(a, b) (('John', 'Jenny'), ('Charles', 'Christy'), ('Mike', 'Monica'))
ezykj2lf2#
事实证明,答案非常简单,我只是使用np.matmul(X,Y)来达到我想要的结果。
2条答案
按热度按时间pcww981p1#
你可以使用Tensor或流量。
也可以使用zip
ezykj2lf2#
事实证明,答案非常简单,我只是使用np.matmul(X,Y)来达到我想要的结果。