我使用Python 2.7, NumPy 1.6.2和SciPy 0.16.0来计算以下内容。
我已经创建了一个Hadamard矩阵。我想从它中取一个向量然后计算它与自身的外积。这是我的代码。
from scipy import linalg
import numpy
from numpy import linalg as np
def test():
hadamard_matrix = linalg.hadamard(8)
outer_product_0 = numpy.multiply(hadamard_matrix[0], hadamard_matrix[0].transpose())
outer_product_1 = numpy.multiply(hadamard_matrix[0].transpose(), hadamard_matrix[0])
print str(outer_product_0)
print str(outer_product_1)
输出:Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
>>> import scipytest
>>> scipytest.test()
[1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1]
你可以看到得到的不是2X2矩阵而是一个向量。我做错了什么吗?
在numpy中有一个外部产品,它完全按照指定的方式工作。
因此大小为n
的向量与自身外积得到nxn
矩阵。
a = [1, 2, 3]
np.outer(a, a)
会给你
array([[1, 2, 3],
[2, 4, 6],
[3, 6, 9]])