我从一个 3x3 数组 m
开始,然后张量将其与自身相乘。
我得到一个由 3x3 数组组成的 3x3 数组,但实际上我想要一个 9x9 数组:
import numpy as np
m = np.array([[1. , 0.5, 0. ], [0.5, 1. , 0.5], [0. , 0.5, 1. ]])
a = np.tensordot(m,m, axes=0)
我尝试了 a.reshape(9,9)
但它没有达到我想要的效果......还有更多想法吗?
我不确定我是否理解正确的问题,但我想你可能想要的是:
import numpy as np
m = np.array([[1. , 0.5, 0. ], [0.5, 1. , 0.5], [0. , 0.5, 1. ]])
a = np.tensordot(m, m, axes=0)
a = a.transpose((0, 2, 1, 3)).reshape((9, 9))
print(a)
输出:
[[1. 0.5 0. 0.5 0.25 0. 0. 0. 0. ]
[0.5 1. 0.5 0.25 0.5 0.25 0. 0. 0. ]
[0. 0.5 1. 0. 0.25 0.5 0. 0. 0. ]
[0.5 0.25 0. 1. 0.5 0. 0.5 0.25 0. ]
[0.25 0.5 0.25 0.5 1. 0.5 0.25 0.5 0.25]
[0. 0.25 0.5 0. 0.5 1. 0. 0.25 0.5 ]
[0. 0. 0. 0.5 0.25 0. 1. 0.5 0. ]
[0. 0. 0. 0.25 0.5 0.25 0.5 1. 0.5 ]
[0. 0. 0. 0. 0.25 0.5 0. 0.5 1. ]]
我是一名优秀的程序员,十分优秀!