【发布时间】:2019-04-13 13:53:35
【问题描述】:
考虑x,一个n x 3 向量。
- 是否有可能使用
numpy或tensorflow或任何Python 库的内置方法 来获得n x 1顺序的向量,使得每一行都是一个向量订单3 x 1?也就是说,如果x是[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]T,可以是 [[1, 2, 3]T, [4, 5, 6]T, [7, 8, 9]T 形式的向量, [10, 11, 12]T]T无需for循环或引入新轴,例如,np.newaxis? - 这背后的动机是只获得
x的点积及其转置的对角线元素。当然,我们可以做类似np.diag(x.dot(x.T))的事情。但是,如果n很大,比如 202933,则可以听到 CPU 的风扇发出喘息声。如何真正避免做所有元素的点积,而只做幻影点积的对角线而不做迭代?
【问题讨论】:
-
如果你写出对角元素的公式,我想你这样做没有问题。
-
顺便说一下,如果
x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]).T,我们通常称它为nx3矩阵,而不是3xn -
请通过示例阐明您在第 1 部分中的意思。您的符号(例如转置)充其量是模棱两可的。此外,图像的使用完全是免费的。我冒昧地删除了它们。希望我的回答能帮助您解决您遇到的计算问题。
标签: python python-3.x numpy tensorflow