gpt4 book ai didi

python - 使用 python 和 numpy 创建三阶张量

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:02 26 4
gpt4 key购买 nike

我有两个一维数组,a 这样 np.shape(a) == (n,)b 这样np.shape(b) == (m,)

想要制作一个(三阶)张量c 使得np.shape(c) == (n,n,m,)通过 c = np.outer(np.outer(a,a),b)

但是当我这样做时,我得到:

>> np.shape(c) 

(n*n,m)

这只是一个矩形矩阵。如何制作我想要的 3D 张量?

最佳答案

您或许可以使用 np.multiply.outer 而不是 np.outer 来获得所需的外积:

>>> a = np.arange(4)
>>> b = np.ones(5)
>>> mo = np.multiply.outer

然后我们有:

>>> mo(mo(a, a), b).shape
(4, 4, 5)

更好的方法是使用 np.einsum(这避免了创建中间数组):

>>> c = np.einsum('i,j,k->ijk', a, a, b)
>>> c.shape
(4, 4, 5)

关于python - 使用 python 和 numpy 创建三阶张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30324167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com