numpy - 使用 numpy 转置向量

标签 numpy ipython transpose

我遇到了 Ipython - Numpy 的问题。我想做以下操作:

x^T.x

formula和 x^T 向量 x 上的转置操作。 x 是从一个 txt 文件中提取的,指令如下:
x = np.loadtxt('myfile.txt')

问题是,如果我使用转置功能
np.transpose(x)

并使用形状函数来知道 x 的大小,我得到 x 和 x^T 的相同尺寸。 Numpy 在每个维度后给出带有 L 大写索引的大小。例如
print x.shape
print np.transpose(x).shape

(3L, 5L)
(3L, 5L)

有人知道如何解决这个问题,并将 x^T.x 计算为矩阵乘积吗?

谢谢!

最佳答案

什么 np.transpose确实是反转形状元组,即你给它提供一个形状数组 (m, n) ,它返回一个形状为 (n, m) 的数组,你给它一个形状数组 (n,) ...它返回与形状相同的数组 (n,) .

您隐含地期望 numpy 将您的一维向量作为二维形状数组 (1, n) ,这将被转置为 (n, 1)向量。 Numpy 不会自行执行此操作,但您可以告诉它这就是您想要的,例如:

>>> a = np.arange(4)
>>> a
array([0, 1, 2, 3])
>>> a.T
array([0, 1, 2, 3])
>>> a[np.newaxis, :].T
array([[0],
       [1],
       [2],
       [3]])

关于numpy - 使用 numpy 转置向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238024/

相关文章:

python - Spyder、Python IDE 启动代码导致 GUI 崩溃

numpy - 为什么TensorFlow要重新实现很多数学方程?

SQL - 将一行转置为两列

matlab - 为什么复数共轭转置在Matlab中默认

Pandas - Pivot/stack/unstack/melt

python - 如何将我的 python 代码转换为在 GPU 而不是 CPU 上运行?

python - "Dynamic"Python中沿轴的N维有限差分

python - python 3.9+的nb_conda_kernels等价物是什么?

html - 从 'file' 菜单将 IPython 2.0 notebook 转换为 html

python - 艰巨的工作流程编写 Latex 书全是 Python 代码