【问题标题】:List not aligned?列表未对齐?
【发布时间】:2017-05-07 09:37:24
【问题描述】:

我希望这是一个简单的问题,而我是愚蠢的。我刚刚在我的数据集上运行了 PCA,它是 18093 行和 13626 列,当我运行下面的代码时,我得到了下面的错误。我很确定我没有正确索引 - 有人可以看到我缺少什么吗?这是我第一次运行代码。

我的目标是拉出前两个特征对。在 Python 2.7 中

# Choosing optimal number of eigen pairs
num_eigen_pairs = np.hstack((eigen_pairs[0][1][:, np.newaxis], eigen_pairs[1][1][:, np.newaxis]))

len(num_eigen_pairs)
Out[161]: 18093

X_train1[0]
Out[162]: array([ 0.,  0.,  0., ...,  0.,  0.,  0.])

len(X_train1)
Out[163]: 18093

X_train1.dot(num_eigen_pairs) #This is the line erroring out

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在 X_train1.dot(num_eigen_pairs)

ValueError:形状 (18093,13626) 和 (18093,2) 未对齐:13626 (dim 1) != 18093 (暗淡 0)

【问题讨论】:

  • 我认为您必须转置其中一个。在矩阵乘法中,维度必须是 * 。试试X_train1.T.dot(num_eigen_pairs)
  • A.dot(B) 要求 A 的最后一个维度与 B 的第二个到最后一个维度(第一个为 2d)匹配。
  • @Mohammad Athar 谢谢!是的,这行得通!天才:-)
  • @Alvis 太棒了!我将其发布为答案,如果您愿意,请接受并投票

标签: python pandas numpy machine-learning


【解决方案1】:

您必须转置其中一个。在矩阵乘法中,维度必须采用 <a,b>*<b,c> 的形式。试试

X_train1.T.dot(num_eigen_pairs)

【讨论】:

  • 谢谢!完美
猜你喜欢
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多