使用numpy / scipy的外部产品

时间:2015-09-08 20:34:56

标签: python-2.7 numpy matrix scipy linear-algebra

我使用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矩阵。我做错了吗?

1 个答案:

答案 0 :(得分:1)

numpy中有一个outer-product,它的确如此specified

因此,外部生成的大小为n的向量将导致nxn矩阵。

a = [1, 2, 3]
np.outer(a, a)

会给你

array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])