Ciência dos Dados nas Organizações- Aplicações em Python.pdf
C
M
Y
CM
MY
CY
CMY
K
1
04/12/17
12:30
Edição FCA – Editora de Informática, Lda.
EDIÇÃOAv. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351de 213Informática, 511 448 FCA – Editora Lda. fca@fca.pt Av. Praia da Vitória, 14 A – 1000-247 Lisboa www.fca.pt Tel: +351 213 511 448 fca@fca.pt www.fca.pt Distribuição Lidel – Edições Técnicas, Lda. DISTRIBUIÇÃO D. Estefânia, 183, R/C Dto. – 1049-057 Lisboa Lidel – Rua Edições Técnicas, Lda. Tel: +351 213 511 448 Rua D. Estefânia, 183, R/C Dto. – 1049-057 LISBOA lidel@lidel.pt Tel: +351 213 511 448 www.lidel.pt lidel@lidel.pt www.lidel.pt
Livraria LIVRARIA Av. Praia da Vitória, 14 A – 1000-247 Lisboa Av. Praia da Vitória, 14 – 1000-247 LISBOA Tel: +351 213 511 448 * Fax: +351 213 522 684 Tel: +351 213 511 448 * Fax: +351 213 173 259 livraria@lidel.pt livraria@lidel.pt Copyright © abril 2016, FCA – Editora de Informática, Lda. Copyright © 2017, FCA – Editora de Informática, Lda. ISBN: 978-972-722-830-0 ISBN edição impressa: 978-972-722-885-0 1.ª edição impressa: abrildezembro 2016 2017 1.ª edição impressa: Paginação: Alice Simões Impressão e acabamento: A definir Paginação: Carlos Mendes Depósito Legal N.º Aguardar Impressão e acabamento: Tipografia Lousanense, Lda. – Lousã Capa: José Manuel Reis Depósito Legal n.º 434983/17 Ilustração daJosé capa: Capa: M.Miguel Ferrão –Montenegro Look-Ahead Marcas Registadas de FCA – Editora de Informática,
Marcas registadas de FCA – Editora de Informática, Lda. –
FCA®
Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções.
Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções.
Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de da mesma.por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de Nãopublicação nos responsabilizamos publicação da mesma.
Os nomes comerciais referenciados neste livro têm patente registada. Os nomes comerciais referenciados neste livro têm patente registada. Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico, gravação, sistema de armazenamento e disponibilização de Reservados todos osmecânico, direitos. Estafotocópia, publicaçãodigitalização, não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico,sítio mecânico, gravação, sistema de armazenamento e disponibilização de informação, Web, blogue informação, Web, fotocópia, blogue oudigitalização, outros, sem prévia autorização escrita da Editora, exceto o permitido pelo sítio CDADC, em ou outros, semprivada prévia autorização escrita da Editora, para exceto o permitido pelo CDADC, termosdo depagamento cópia privada AGECOP – termos de cópia pela AGECOP – Associação a Gestão da Cópia Privada,em através daspela respetivas – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas. taxas.
ÍNDICE Os Autores Sobre o Livro Extratexto: Figuras a Cores
1. Ciência dos Dados nas Organizações 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7.
XIII XVII 1
O Crescimento Exponencial de Dados e Fluxos de Dados
2
A Web Semântica
2
A Gestão de Conhecimento Organizacional
4
A Importância Crescente da Análise de Dados nas Organizações
9
Algoritmos para a Descoberta e Extração de Dados
10
Sistemas de Apoio à Decisão
12
Ciência dos Dados
14
2. Ciência dos Dados
© FCA
XI
2.1. Fundamentos da Ciência dos Dados 2.2. Fontes e Conjuntos de Dados 2.3. Tipos de Dados Estatísticos 2.3.1. Tipo de Dados Numérico 2.3.2. Tipo de Dados Nominal 2.3.3. Tipo de Dados Ordinal 2.4. Métodos e Modelos Estatísticos para a Análise de Dados 2.4.1. Elementos Básicos de Estatística Descritiva 2.4.2. Análise de Regressão e Correlação 2.4.2.1. Diagramas de Dispersão 2.4.2.2. Modelo Matemático de Regressão Linear Simples 2.5. Áreas de Aplicação
17 18 20 21 22 22 22 23 23 24 25 28 29
VI
Ciência dos Dados nas Organizações – Aplicações em Python
2.5.1. 2.5.2. 2.5.3. 2.5.4. 2.5.5. 2.5.6. 2.5.7.
Marketing e Gestão de Vendas
30
Economia e Finanças
30
Análise de Crédito e Deteção de Fraudes
30
Telecomunicações 31 Internet das Coisas
33
Big Data 34 Indústria 4.0
36
2.6. Análise Preditiva nas Organizações 37 2.7. Inteligência Artificial 39 2.8. O Papel do Data Mining 40 2.9. Estatística, Inteligência Artificial e Machine Learning 40 2.10. A Natureza Interdisciplinar da Ciência dos Dados 42
3. Gestão e Engenharia de Conhecimento 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8.
O Conhecimento na Organização
46
Gestão de Conhecimento
46
A Organização enquanto Sistema Complexo
47
A Necessidade de Avaliar o Desempenho das Organizações
48
O Capital Intelectual
49
Desafios da Avaliação do Capital Intelectual
50
O Papel Integrador da Gestão de Conhecimento
53
A Gestão de Conhecimento por Competências
55
4. Métodos e Técnicas para a Análise de Redes Organizacionais 4.1. 4.2. 4.3. 4.4. 4.5. 4.6.
45
57
Análise de Redes Sociais
58
Modelos para Representação de Redes Sociais
58
O Processo de Captura de uma Rede Social
63
Métricas Essenciais
64
Visualização de Redes Sociais
69
Abordagem Organizacional
72
5. Linguagem de Programação Python 5.1. Evolução e Características da Linguagem Python 5.2. Ambiente de Programação Python 5.3. Tipos e Estruturas de Dados da Linguagem Python 5.3.1. Tipo de Dados e Expressões Booleanos 5.3.2. Tipo de Dados Numérico
75 76 77 82 83 84
Índice
5.3.3. Tipo de Dados Alfanumérico
85
5.4. Tipos de Dados para a Análise de Dados 86 5.4.1. Tipo Numérico 86 5.4.2. Tipo Nominal 86 5.4.3. Tipo Ordinal 87 5.5. Instruções de Controlo em Python 87 5.5.1. Estrutura Condicional if-then-else 87 5.5.2. Instruções de Iteração 88 5.6. Módulos e Funções em Python 88 5.6.1. Módulos Standard 89 5.6.2. Módulos Definidos pelo Programador 91 5.7. Bibliotecas Matemáticas e Estatísticas 93 5.7.1. Biblioteca numpy 93 5.7.2. Biblioteca matplotlib 95
© FCA
6. Análise de Dados e Computação Científica em Python
99
6.1. Ambiente Integrado de Desenvolvimento scipy 100 6.1.1. Instalação do Ambiente scipy 101 6.1.2. IPython Jupyter Notebook 104 6.2. Algoritmos, Estruturas de Dados e Objetos em Python 106 6.2.1. Tipos de Dados Primitivos Python 107 6.2.2. Listas em Python 109 6.2.3. Dicionários em Python 111 6.2.4. Funções Python como Objetos 112 6.3. Computação Interativa com o Ambiente IPython 113 6.3.1. Funcionalidades do Sistema Operativo 113 6.3.2. Entrada e Saída de Dados (Ficheiros) 114 6.3.3. Tratamento de Exceções 115 6.3.4. Geração Aleatória de Dados 116 6.4. Biblioteca Python numpy 117 6.4.1. Computação Vetorizada (Array Based) 118 6.4.2. Operações Matemáticas Simples 118 6.4.3. Criação e Manipulação de Arrays 120 6.4.4. Indexação e Operações em Arrays Multidimensionais 123 6.5. Biblioteca matplotlib para a Visualização de Dados 128 6.5.1. Módulo Python matplotlib 128
VII
VIII
Ciência dos Dados nas Organizações – Aplicações em Python
6.5.2. 6.5.3. 6.5.4. 6.5.5. 6.5.6. 6.5.7.
Eixo Cartesiano (X, Y)
129
Representação de Imagens e Cores
130
Processamento e Visualização de Dados em Arrays 131 Representação Gráfica de Funções Matemáticas
133
Elementos Gráficos Adicionais
134
Tipos de Gráficos
136
6.5.7.1. Gráfico de Linhas 6.5.7.2. Gráfico de Pontos 6.5.7.3. Gráfico de Barras
136 137 139
6.6. Biblioteca Python pandas 140 6.6.1. Estruturas de Dados Principais do Módulo pandas 141 6.6.1.1. series 142 6.6.1.2. DataFrame 143 6.7. Análise e Visualização de Dados em Python 145 6.7.1. Importar e Carregar Dados 145 6.7.1.1. Yahoo Finance 146 6.7.1.2. Google Finance 147 6.7.1.3. Dados do Banco Mundial (World Bank) 148 6.7.2. Leitura e Preparação dos Dados 149 6.7.3. Visualização Gráfica dos Dados 152 6.7.4. Outras Bibliotecas Python e Fontes de Dados 153
7. Análise de Redes Sociais 7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7.
157
Introdução 158 Preparar Informação
159
Importar a Rede
162
Conhecer o Ambiente de Trabalho
166
Aplicar Métricas
168
Explorar Formas de Visualização
171
Armazenar o Trabalho
197
8. Análise Estatística e Preditiva
199
8.1. Procedimentos Básicos na Leitura de Ficheiros CSV 200 8.2. Operações Estatísticas e Visualização Gráfica 202 8.2.1. Operações de Estatística Descritiva 202 8.2.2. Leitura e Preparação de Um Conjunto de Dados 205 8.2.3. Análise e Visualização de Dados 211
Índice
8.3. Análise Preditiva em Séries Temporais 8.3.1. Caracterização e Divisão do Conjunto de Dados 8.3.2. Analisar o Conjunto de Dados 8.3.3. Gerar Versão Estacionária 8.3.4. Autocorrelação e Autocorrelação Parcial 8.3.5. Testar Manualmente os Modelos ARIMA 8.3.6. Encontrar Automaticamente o Melhor Modelo ARIMA 8.3.7. Rever Erros Residuais 8.3.8. Verificar Adição de Erro Residual 8.3.9. Recalcular Erros Residuais 8.3.10. Gravar Modelo 8.3.11. Testar Uma Predição 8.3.12. Validar Modelo 8.4. Recursos Complementares
9. Supervised Machine Learning
213 214 217 221 224 225 227 230 232 235 238 239 240 244 245
9.1. Inteligência Artificial e Machine Learning 246 9.2. Supervised (Machine) Learning 247 9.2.1. Regressão Linear e Correlação 247 9.2.2. K Nearest Neighbors 253 9.2.3. Support Vector Machine 265 9.2.4. Redes Neuronais 272 9.2.4.1. Redes Neuronais para Classificação Binária 276 9.2.4.2. Redes Neuronais para Classificação Multiclasse (K Classes) 281
9.3. Recursos Complementares
290
© FCA
Conclusão 293 Referências Bibliográficas
295
Índice Remissivo
299
IX
© FCA
OS AUTORES José Braga de Vasconcelos
Doutor em Ciências da Computação pela Universidade de York (Reino Unido). Professor na Universidade Atlântica e Professor Convidado na Universidade Europeia nas áreas de Engenharia de Software e Linguagens de Programação. Consultor e autor de diversas publicações nacionais e internacionais sobre sistemas e tecnologias de informação e gestão de conhecimento organizacional. Autor das obras Tecnologias de Programação de Jogos, Python: Algoritmia e Programação Web e Scratch & Kodu: Iniciação à Programação no Ensino Básico, editadas pela FCA.
Alexandre Barão
Doutor em Engenharia Informática e de Computadores pelo Instituto Superior Técnico. Docente de carreira com sólida experiência no ensino superior. Especialista em programação orientada por objetos, lecionando nas áreas de Engenharia de Software e Gestão de Conhecimento. Autor de publicações científicas nacionais e internacionais. Das suas áreas de interesse, destacam-se: Gestão de Competências, Análise de Desempenho e Comportamento Humano nas Organizações e Gestão de Conhecimento.
SOBRE O LIVRO
© FCA
O conhecimento organizacional encontra-se essencialmente na mente dos Recursos Humanos, codificado e documentado explicitamente em Sistemas de Informação (SI) da organização e embebido implicitamente na cultura, políticas e procedimentos organizacionais. Atualmente, tendo em conta a competitividade entre organizações e os enormes volumes de dados e fluxos de dados, os grupos de trabalho têm de procurar e explorar exemplos das melhores práticas, melhorar a sua eficácia e eficiência, e contribuir para uma aprendizagem organizacional, com visibilidade para todos os intervenientes e para o sucesso da organização. Os grupos de trabalho em organizações de conhecimento intensivo necessitam de gerir dinamicamente as suas qualificações, criar mecanismos para descobrir novas ideias e inovações, identificar fontes de informação e padrões relevantes de comportamento organizacional, e, essencialmente, resolver problemas com diferentes níveis de complexidade. No ambiente comercial e concorrencial em que as organizações coabitam, onde o downsizing, a reengenharia, a reestruturação de processos e as altas taxas de aparecimento e desaparecimento de organizações são comuns, os negócios começam a reconhecer como é fácil perder um elemento vital da sua propriedade intelectual: o conhecimento organizacional conseguido durante a normal execução das tarefas diárias. As pessoas, muitas vezes, não têm consciência de recursos-chave que estão subliminarmente escondidos e escamoteados em diferentes e volumosos repositórios de informação.
XIV
Ciência dos Dados nas Organizações – Aplicações em Python
Os processos de negócio estão atualmente integrados no enorme mercado de dados e fluxos constantes de informação existentes na rede global. Enquanto os processos e fluxos de dados continuam gradualmente a ser transferidos para a rede digital Internet, juntamente com os milhares de milhões de dispositivos móveis com capacidade computacional (em crescimento) atualmente existentes, produzimos sistematicamente um fluxo de dados e de informação digital que tende a crescer exponencialmente. Os indivíduos e as organizações empresariais fazem parte deste ecossistema global de dados e os métodos e técnicas para transformar os dados em informação útil são já, hoje em dia, indutores de tomada de decisões inteligentes para o desenvolvimento e execução dos processos de negócio. Neste contexto, a atividade profissional de analista de dados tem vindo a crescer significativamente no âmbito empresarial, através da aplicação de ferramentas de Big Data e Machine Learning para a análise, descoberta e previsão de padrões de comportamento. Esta abordagem permite diminuir a incerteza inerente aos processos de tomada de decisão pelos gestores e profissionais. No âmbito académico e universitário, a análise de dados e consequente inferência tem sido uma constante no desenvolvimento de trabalhos de mestrado e doutoramento. Neste contexto, a Ciência dos Dados (Data Science) surgiu como uma área (e necessidade) de investigação e desenvolvimento (I&D). Conceitos e atividades como Big Data, Data Mining, Text Mining, Information Retrieval, Machine Learning, predictive analysis, análise e programação em R e em Python ganham cada vez mais importância e aplicação prática nas empresas e nas universidades. Este livro pretende apresentar a área de I&D da Ciência dos Dados e Engenharia de Conhecimento e as suas aplicações nas organizações empresariais. São vários os capítulos que contêm um conjunto de práticas e casos de estudo de aplicação dos principais métodos e técnicas de análise de dados e análise preditiva com base nas tendências de I&D na área da Ciência dos Dados e da Gestão e Engenharia de Conhecimento. Como principal técnica de representação de
Sobre o Livro
dados e programação, é aplicada a linguagem Python no âmbito da análise, modelação e visualização de informação e no desenvolvimento de soluções (software) para a análise de dados.
ORGANIZAÇÃO O livro é composto por nove capítulos. Os primeiros cinco capítulos apresentam e contextualizam as áreas de I&D relacionadas com a Ciência dos Dados, incluindo as principais técnicas de análise de dados, e a Gestão e Engenharia de Conhecimento nas organizações, com o objetivo de converter sistematicamente dados em informação útil e aplicar a informação relevante que resulta na criação de novos recursos de conhecimento. O Capítulo 1 apresenta os fundamentos da Ciência dos Dados e as tendências e práticas de análise de dados nas organizações, incluindo as áreas de I&D relacionadas, tais como a Gestão de Conhecimento (GC) Organizacional, a Web Semântica, as tecnologias de extração de conhecimento de dados (Data Mining), os sistemas de apoio à decisão e as ferramentas de software e linguagens de programação (Python) adequadas ao desenvolvimento de soluções de software empresariais na área abrangente da Ciência dos Dados. O Capítulo 2 resume a área (I&D) da Ciência dos Dados e as principais aplicações e tendências nas organizações empresariais, nas universidades e centros de I&D.
© FCA
O Capítulo 3 enquadra a Ciência dos Dados com a área da Gestão e Engenharia de Conhecimento. Neste capítulo são apresentadas as principais práticas e tendências da GC nas organizações. É fundamental demonstrar a importância e o valor do conhecimento organizacional no âmbito do desenvolvimento de projetos e processos de negócio. A GC é interpretada como uma evolução natural da maturidade dos SI nas organizações. O Capítulo 4 apresenta os modelos, métodos e técnicas para análise de dados, incluindo técnicas e métricas para a
XV
XVI
Ciência dos Dados nas Organizações – Aplicações em Python
análise e avaliação de redes sociais e a forma de obter e extrair informação útil destes recursos. O Capítulo 5 apresenta a linguagem de programação Python, as suas principais características e o ambiente de desenvolvimento que será utilizado na construção de soluções (exemplos) de software, assim como determinadas funções mais utilizadas para a representação e análise de dados. O Capítulo 6 descreve um conjunto de ferramentas e bibliotecas de software Python para o desenvolvimento de novas soluções de software com recurso a módulos Python para a análise de dados e cálculo científico. Este capítulo introduz um conjunto de técnicas (e algoritmos) de programação em Python no âmbito da aplicação da Ciência dos Dados nas organizações. O Capítulo 7 dá a conhecer um conjunto de técnicas, algoritmos e software para análise de redes sociais (ARS). Neste capítulo são desenvolvidas técnicas de análise de redes e visualização de informação. O Capítulo 8 apresenta exemplos práticos de análise estatística e preditiva em séries temporais, onde a linguagem de programação (Python), plataformas, tecnologias, ferramentas e frameworks Web discutidas no livro poderão ser utilizadas em cenários reais. Por último, o Capítulo 9 apresenta um conjunto de aplicações de Supervised (Machine) Learning, com base em bibliotecas da linguagem de programação Python.
A QUEM SE DESTINA O público-alvo preferencial são os profissionais e estudantes das áreas da Gestão e Economia, das Ciências Sociais, da Engenharia e Gestão Industrial, das engenharias, em geral, e das Tecnologias de Informação e Ciências da Computação que pretendem desenvolver competências na área da Análise de Dados. Neste sentido, este livro destina-se a profissionais atentos à expansão exponencial de dados nas organizações.
4 INTRODUÇÃO
MÉTODOS E TÉCNICAS PARA A ANÁLISE DE REDES ORGANIZACIONAIS
Em contextos organizacionais, as técnicas de análise de redes sociais permitem uma avaliação ajustada à realidade, seja ao nível dos seus membros, seja ao nível dos fluxos que proliferam na rede. Assim, este capítulo aborda o papel da análise das redes sociais nas organizações, respetivas formas de modelar e capturar as mesmas, bem como as principais métricas que o analista de dados pode utilizar. Naturalmente, a abordagem é organizacional e são ainda referidos aspetos técnicos para visualização de redes, per si fundamentais em processos de análise exploratória de dados.
58
Ciência dos Dados nas Organizações – Aplicações em Python
4.1. ANÁLISE DE REDES SOCIAIS A análise de redes sociais (ARS) permite identificar propriedades de rede que são fundamentais para compreender a organização. Por exemplo, imaginemos redes distintas que representam fluxos de comunicação de duas unidades organizacionais. Através da medição da densidade de rede, uma métrica da ARS, é possível compreender e monitorizar, de forma automatizada e sistemática, fluxos de partilha de informação de cada unidade organizacional, sendo então possível comparar níveis de comunicação que podem estar sujeitos a fenómenos emergentes e sazonais, em função do modelo de negócio em análise. Deste modo, ao compreender padrões de comunicação na organização, o gestor pode utilizar esta informação como instrumento de suporte à decisão. O conhecimento pode existir em indivíduos ou grupos sociais e, por esta razão, a ARS é, na nossa perspetiva, indissociável de processos de GC. Uma rede social é constituída por um conjunto finito de atores e respetivas ligações/relações (Faust & Faust, 1994). De uma forma abrangente, os atores são entidades sociais que estão relacionadas, de algum modo, com as organizações. Assim, podemos considerar que as organizações têm redes sociais, tal como podemos assumir que elas próprias são redes sociais. Este facto reforça o papel da ARS que é a base para outras áreas, como a Análise de Redes Organizacionais (ARO), a Análise de Redes de Valor (ARV) e a Análise de Redes Dinâmicas (ARD). De uma forma sistemática, podemos dizer que a ARS representa um método para obter resultados analíticos sobre qualquer tipo de interação em grupo em que entidades sociais estejam presentes. Então, as dinâmicas de rede são estudadas através da ARS, para identificar relações e interações entre os seus membros. A partir destas interações, é possível identificar padrões sociais (Haythornthwaite, 2005), sendo que os resultados obtidos permitem analisar e propor transformações organizacionais. Tipicamente, cenários de ARS envolvem a análise de colaborações e alianças estratégicas, fluxos de informação, comunicação, bens e serviços e influência (Brass et al., 2004). A International Network for Social Network Analysis mantém uma lista de artigos relacionados e conferências na área (INSNA, 2017).
4.2. MODELOS PARA REPRESENTAÇÃO DE REDES SOCIAIS Na abordagem às organizações, uma das preocupações do consultor consiste na forma como vai efetuar e descrever o modelo de rede. Assim, na ARS predominam três estratégias para modelar redes sociais (Jamali & Hassan, 2006): • Métodos descritivos, que incluem representações gráficas;
6 INTRODUÇÃO
ANÁLISE DE DADOS E COMPUTAÇÃO CIENTÍFICA EM PYTHON
Este capítulo apresenta as principais bibliotecas de software Python para a representação e análise de dados. O ambiente integrado de desenvolvimento de software scipy integra as ferramentas e bibliotecas de software atualmente mais utilizadas para a programação de soluções de software para a análise de dados e respetiva computação científica. Este capítulo utiliza essencialmente um conjunto de bibliotecas Python fundamentais para a análise e visualização de dados, tais como: a biblioteca numpy para o cálculo numérico, a biblioteca scipy para a computação científica, o pandas para a representação de estruturas de dados e análise matemática e o matplotlib para a visualização e integração de grandes volumes de dados. Para a demonstração de um conjunto de programas, além do ambiente base de desenvolvimento (IDLE), este capítulo utiliza um ambiente interativo Web de desenvolvimento e programação em Python: o IPython Jupyter Notebook.
100
Ciência dos Dados nas Organizações – Aplicações em Python
6.1. AMBIENTE INTEGRADO DE DESENVOLVIMENTO scipy
Este livro tem por objetivo estudar e aplicar os mecanismos e construtores da linguagem Python para a manipulação e processamento de volumes de dados. O ambiente Python evoluiu, nos últimos anos, no sentido de apurar um conjunto de bibliotecas de software para o tratamento e análise de dados e respetiva resolução de problemas (problem ‑solving algorithms). Neste sentido, a linguagem Python tem vindo a crescer com resultados efetivos na gestão de aplicações de dados intensivos (data intensive applications). O ambiente integrado de desenvolvimento de software scipy (Figura 6.1) incorpora um conjunto de bibliotecas e ferramentas de desenvolvimento e programação em Python para a análise de dados e cálculo científico. O scipy integra as seguintes componentes de software: • Biblioteca numpy, para cálculo numérico e manipulação de dados multidimensional; • Biblioteca scipy, para computação científica; • Biblioteca matplotlib, para a visualização de informação e grandes volumes de dados; • Ambiente de desenvolvimento (e shell) IPython, para uma computação e programação Python interativa; • Biblioteca sympy, para o desenvolvimento de software e computação simbólica, através da aplicação explícita de funções (e objetos) matemáticas; • Biblioteca pandas, para a representação de diferentes estruturas de dados e respetiva análise matemática e estatística dos dados.