Pergunta

Desculpe minha ignorância, sou muito novo em Python.Estou tentando realizar análise fatorial em Python usando MDP (embora possa usar outra biblioteca se houver uma solução melhor).

Eu tenho uma matriz m por n (chamada matriz) e tentei fazer:

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

mas recebo um erro.Suponho que talvez minha matriz não esteja formada corretamente.Meu objetivo é descobrir quantos componentes estão nos dados e quais linhas são carregadas em quais componentes.

Aqui está o rastreamento:

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'

Alguém tem alguma ideia do que está acontecendo e gostaria de explicar para um novato em Python?

Foi útil?

Solução

Não tenho absolutamente nenhuma experiência com mdp, mas parece que ele espera que suas matrizes sejam passadas como um array Numpy em vez de uma lista.Numpy é um pacote para computação científica de alto desempenho.Você pode ir para o Numpy pagina inicial e instale-o.Depois de fazer isso, tente alterar seu código para isto:

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

Outras dicas

Como Stephen disse, os dados devem ser um array numpy.Mais precisamente, deve ser uma matriz 2D, com o primeiro índice representando as diferentes amostras e o segundo índice representando as dimensões dos dados (usar a ordem errada aqui pode levar ao erro de "matriz singular").

Você também deve dar uma olhada no Documentação do MDP, que deve responder a todas as suas perguntas.Se isso não ajudar, existe a lista de discussão de usuários do MDP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top