抱歉,我是Python的新手。我正在尝试使用MDP在Python中执行因子分析(尽管如果有更好的解决方案,我可以使用另一个库)。

我有一个m×n矩阵(称为矩阵),并且尝试这样做:

import mdp
mdp.nodes.FANode()(matrix)


但我得到一个错误。我猜我的矩阵可能格式不正确?我的目标是找出数据中有多少个组件,并找出哪些行加载到哪些组件上。

这是回溯:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "mdp/signal_node.py", line 630, in __call__
    return self.execute(x, *args, **kwargs)
  File "mdp/signal_node.py", line 611, in execute
    self._pre_execution_checks(x)
  File "mdp/signal_node.py", line 480, in _pre_execution_checks
    self.train(x)
  File "mdp/signal_node.py", line 571, in train
    self._check_input(x)
  File "mdp/signal_node.py", line 429, in _check_input
    if not x.ndim == 2:
AttributeError: 'list' object has no attribute 'ndim'


有谁知道发生了什么,并想向Python新手解释吗?

最佳答案

我对mdp完全没有经验,但是看起来它希望您的矩阵作为Numpy数组而不是列表传递。 Numpy是用于高性能科学计算的软件包。您可以转到Numpy home page并安装它。这样做之后,尝试将代码更改为此:

import mdp, numpy
mdp.nodes.FANode()(numpy.array(matrix))

10-07 12:26