下午好,从机械的角度来看这里所有相对简单的问题。
我目前正在执行PCA并成功编写了一个代码,用于计算协方差矩阵和相关矩阵以及相关的特征谱。
现在,我创建了一个表示行特征向量的数组,我想计算变换C * v ^ t,其中c是观测矩阵,v ^ t是特征向量的元素明智条目转置。
现在,由于这些矩阵中的一些非常大 - 我希望能够告诉python哪一行特征向量矩阵多为C by。到目前为止,我已经尝试了一些numpy功能,但无济于事。
(对于那些你想知道的人,我不想计算所有特征向量的矩阵乘积,我只需要乘以它们的一小部分 - 与最大特征值相关的那个)
谢谢!
答案 0 :(得分:1)
要从2维数组n
中“切片”行A
的向量,请使用类似A[n]
的语法。如果它正在切割您想要的列,则语法为A[:,n]
。
对于具有numpy数组和向量的转换,语法使用矩阵乘法运算符:
>>> A = np.array([[0, -1], [1, 0]])
>>> vs = np.array([[1, 2], [3, 4]])
>>> A @ vs[0] # this is a rotation of the first row of vs by A
array([-2, 1])
>>> A @ vs[1] # this is a rotation of second row of vs by A
array([-4, 3])
注意:如果你使用的是较旧的python版本(< 3.5),那么你可能还没有@
。然后,您必须使用function np.dot(array, vector)
而不是运营商。