Entre o Matlab e o Python, qual linguagem é boa para a análise estatística geral dos dados? Quais são os prós e os contras, além da acessibilidade, para cada um?
Entre o Matlab e o Python, qual linguagem é boa para a análise estatística geral dos dados? Quais são os prós e os contras, além da acessibilidade, para cada um?
Respostas:
Como usuário obstinado do Matlab há mais de 10 anos, recomendo que você aprenda Python. Quando você tiver conhecimentos suficientes em um idioma, quando trabalhar em um idioma que estiver aprendendo, parecerá que você não está sendo produtivo o suficiente e voltará a usar o melhor idioma padrão. No mínimo, eu sugiro que você tente se tornar igualmente proficiente em vários idiomas (eu sugeriria também R).
O que eu gosto no Matlab:
O que eu não gosto no Matlab:
median
função do Matlab , que executa uma espécie de dados e, em seguida, assume o valor médio . Este tem sido o algoritmo errado desde os anos 70.-nojvm
aparece para ajudar ...
shuffle
pode estar em uma caixa de ferramentas, não é estoque matlab. dificilmente poderia ser pior do que o builtin, randperm
que retorna o índice de classificação de um vetor aleatório. Mais uma vez, este é provavelmente o algoritmo errado (eu só aprendi sobre o Knuth-Fisher-Yates embaralhar aqui na stats.SE) ..
randperm
é que ela é afetada pela semeadura randn
, enquanto uma versão mexicana de Knuth-Fisher-Yates talvez não consiga acessar a semente randn 'internamente', e uma versão .m pura do shuffle provavelmente seja muito lento.
Vamos dividir em três áreas (em cima da minha cabeça) onde a programação atende às estatísticas: processamento de dados, rotinas numéricas (otimização e outras) e bibliotecas estatísticas (modelagem etc.).
No primeiro, a maior diferença é que o Python é uma linguagem de programação de uso geral. O Matlab é ótimo desde que seu mundo seja aproximadamente isomórfico para uma matriz numérica fortran. Depois que você começa a lidar com a troca de dados e questões relacionadas, o Python supera o Matlab. Por exemplo, consulte o livro de Greg Wilson: Processamento de dados: resolva problemas diários usando Java, Python e muito mais .
No segundo, o Matlab realmente brilha com o trabalho numérico. Muita comunidade de pesquisa o usa e, se você estiver procurando, digamos, algum algoritmo relacionado a um artigo sobre detecção compactada, é muito mais provável que você encontre uma implementação no Matlab. Por outro lado, o Matlab é uma espécie de PHP da computação científica - ele se esforça para ter uma função para tudo sob o sol. A estética e a arquitetura resultantes são enlouquecedoras se você é um nerd de linguagem de programação, mas em termos utilitários, ele faz o trabalho. Muito disso se tornou menos vantajoso com o surgimento do Numpy / Scipy, é provável que você encontre as bibliotecas de otimização e aprendizado de máquina disponíveis para o Python. A interface com C é quase tão fácil em qualquer idioma.
Sobre a disponibilidade de bibliotecas estatísticas para modelagem e coisas do tipo, ambas faltam um pouco quando comparadas a algo como R. (Embora eu suspeite que ambas atendam às necessidades de 80% das pessoas que fazem trabalho estatístico). Para o lado do Python, veja esta pergunta : Python como um ambiente de trabalho de estatística . Para o lado do Matlab, sei que há uma caixa de ferramentas de estatísticas, mas deixarei que alguém com mais conhecimento preencha os espaços em branco (minha experiência com o Matlab é limitada a trabalhos numéricos não relacionados a estatísticas).
Eu também sou um usuário ávido do Matlab há mais de 10 anos. Por muitos desses anos, não tive motivos para trabalhar além da caixa de ferramentas que criei para o meu trabalho. Embora muitas funções tenham sido criadas para uma caixa de ferramentas, muitas vezes eu precisava criar algoritmos para análise rápida de resposta. Como esses algoritmos costumam utilizar matemática matricial, o Matlab era um candidato ideal para o meu trabalho. Além da minha caixa de ferramentas Matlab, outras pessoas do meu grupo trabalharam extensivamente em Java, pois havia uma clara interoperabilidade entre as linguagens. Durante anos fiquei completamente feliz com o Matlab, mas há cerca de três anos decidi iniciar a transição lenta do Matlab e feliz em dizer que não a abro há cerca de um ano. Aqui está o motivo da minha mudança:
-nodesktop
opção é bom na maioria das vezes, mas tem problemas.Esta é apenas algumas das minhas muitas queixas com o Matlab. É um atributo brilhante: é fácil, muito fácil escrever código rapidamente (se não for feio). Eu deixei embora, e minha busca me levou através do Clojure-> JavaScript-> Python <-> Julia; Sim, eu estive em todo lugar.