请原谅我的无知,我是 Python 的新手。我正在尝试使用 MDP 在 Python 中执行因子分析(尽管如果有更好的解决方案,我可以使用另一个库)。
我有一个 m x 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))
