【发布时间】:2019-03-06 22:56:09
【问题描述】:
在我的一个代码中,我使用 numpy 进行矩阵计算。
在某一时刻,我必须做 2 个向量之间的外积来得到一个矩阵。这就是我卡住的地方。起初,我尝试了 numpy.dot 或其他矩阵产品,但是当参数都是一维时,它只做标量产品,这不是我想要的。然后我发现 numpy.outer 完全符合我的要求:一列 * 一行。
问题是,我的向量不是数组。由于它们是由 numpy.dot 操作产生的,因此它们是 ndarray 对象。但是 ndarrays 没有外部方法。我已经尝试了在 Internet 上找到的所有方法,将我的 ndarray 转换为简单的数组。但是没有任何效果,我仍然一次又一次地遇到ndarray和相同的属性错误。
现在我不知道该尝试什么,所以在我做一些暗示克隆数组中的值的讨厌的事情之前,我想检查一下你是否知道另一种方法来做这个外部产品。
非常感谢您的帮助。
【问题讨论】:
-
所以澄清一下:你想把一个 ndarray 对象转换成一个数组数组?
-
有人可能会纠正我,但我认为所有 numpy 数组都是
numpy.ndarray类的实例。没有简单的array这样的类。数组没有outer方法,outer只是numpy模块中的一个普通函数。你可以像numpy.outer(x, y)一样使用它 -
如果我执行 numpy.outer,我只会收到此错误:AttributeError: 'numpy.ndarray' object has no attribute 'outer'。并不是我想将我的 ndarray(它是一维的)转换为一个数组,这只是我想做我的外部产品的事情。但如果有其他方法,我可以试试
-
您是否调用了您的变量之一
numpy?可以发minimal, complete, verifiable example吗? -
Mea Culpa, numpy.outer 似乎有效。我只是认为这是一种方法并尝试了错误的方法。非常感谢您的帮助
标签: python numpy multidimensional-array