在我的代码之一中,我使用numpy进行矩阵计算。
在某一点上,我必须做两个向量之间的外积以获得矩阵。那就是我被困住的地方。最初,我尝试使用numpy.dot或其他矩阵乘积,但是当参数均为1D时,它仅执行标量乘积,而这不是我想要的。然后我发现numpy.outer正是我想要的:一列*一行。
问题是,我的向量不是数组。由于它们是由numpy.dot操作产生的,因此它们是ndarray对象。但是ndarray没有外部方法。我已经尝试了在Internet上找到的所有内容,将ndarrays转换为简单数组。但是没有任何效果,我仍然有一个ndarray和相同的属性错误一次又一次。
现在我不知道要尝试什么,所以我想检查一下您是否知道另一种做这种外部乘积的方法,然后再做一些令人讨厌的事情,暗示将值克隆到数组中。
非常感谢您的帮助。
答案 0 :(得分:0)
outer
不是任何类的方法,它只是numpy
模块中的普通旧函数。
以下是使用方法的示例:
import numpy
x = numpy.array([1, 2, 3])
y = numpy.array([4, 5, 6])
# x.__class__ and y.__class__ are both 'numpy.ndarray'
outer_product = numpy.outer(x, y)
# outer_product has the value:
# array([[ 4, 5, 6],
# [ 8, 10, 12],
# [12, 15, 18]])