Você está na página 1de 1

O que você quer aprender?

COMO FUNCIONA PARA EMPRESAS ENTRAR MATRICULE SE

PROGRAMAÇÃO _ FRONT END _ DATA SCIENCE _ INTELIGÊNCIA ARTIFICIAL _ DEVOPS _ UX & DESIGN _ MOBILE _ INOVAÇÃO & GESTÃO _

Artigos > Data Science

Numpy: trabalhando computação científica com


Python

COMPARTILHE
Marcus Almeida
13/03/2023

Confira neste artigo:


Introdução
Introdução
O que é o NumPy?
Em aplicações científicas, de engenharia e principalmente de ciência de dados
Estruturas básicas do NumPy
existe a necessidade de realizar cálculos numéricos especializados.
NumPy na computação
científica
Quando você faz a soma de todos os valores de uma coluna em um software de
Instalação do NumPy
planilhas ou mesmo operações matemáticas entre as diferentes colunas, existe
Indo além
um código implementado para tornar essas operações possíveis. Da mesma
forma, se você já usou uma função de uma biblioteca Python que faz regressão
linear ou um algoritmo de machine learning qualquer, saiba que esses códigos são
a tradução de um conjunto de equações matemáticas para código. Essas
implementações precisam ser eficientes e fáceis de compreender. Quanto mais
próximo o código escrito estiver da escrita da matemática, melhor.

Nesse contexto, em Python, surge a NumPy. Essa é uma biblioteca poderosa e


amplamente utilizada que revolucionou o segmento de computação científica.
Isso, principalmente, pelo caráter aberto da linguagem Python. Com a NumPy, é
possível realizar operações matemáticas complexas com objetos do tipo array de
forma eficiente e otimizada. Mas o que exatamente é e como funciona a Numpy?

O que é o NumPy?

NumPy, uma abreviação de Numerical Python, é uma biblioteca de código aberto


do Python para computação científica, campo de estudo que utiliza recursos
computacionais para entender e resolver problemas. Essa biblioteca permite
trabalhar com a manipulação de objetos array multidimensionais, além de seus
objetos derivados, como matrizes, sequências, e outros. Além disso, também
possui uma grande variedade de operações rápidas com os arrays, incluindo
operações matemáticas e lógicas, manipulações de formato, ordenação e
seleção, ferramentas de estatística e cálculo, e muito mais.

A biblioteca NumPy foi lançada em 2005, pelo cientista de dados Travis Oliphant,
com a proposta de ser uma ferramenta rápida, eficiente e fácil de usar,
permitindo assim a realização de cálculos numéricos e matemáticos em larga
escala, por meio da funcionalidade chamada vetorização. Por isso, tornou-se
uma das bases fundamentais para análise de dados, aprendizado de máquina
(machine learning) e computação científica em geral, estando presente também
na construção de várias bibliotecas de ciência de dados, incluindo: Pandas,
Matplotlib, Scikit-learn, SciPy, e muitas outras.

Uma curiosidade sobre essa biblioteca é que ela também esteve presente nos
trabalhos de descobertas científicas recentes importantes, como a detecção da
primeira imagem de um buraco negro, e também a detecção de ondas
gravitacionais.

Mas como exatamente funciona o NumPy?

Estruturas básicas do NumPy


A Numpy funciona por meio de estruturas chamadas arrays, que são estruturas
de dados homogêneas, isto é, onde os elementos possuem o mesmo tipo. Essas
estruturas podem ter vários formatos e dimensões, que variam com a
necessidade de cada tipo de projeto. De maneira geral, para vários tipos de
aplicações, trabalhamos até a terceira dimensão, mas existem casos onde
podemos necessitar de mais.

O conceito de dimensão pode ser aplicado no Python a partir do conceito das


listas aninhadas (nested lists). Para isso, vamos usar as seguintes estruturas:

Escalar: um elemento único, adimensional. Pode ser um inteiro, float,


hexadecimal, caractere, e vários outros tipos de dado.

No Python, após importar a biblioteca, nós definimos um escalar como:

import numpy as np
np.array(42)

Array unidimensional: uma lista de escalares onde podemos identificar cada um


deles pela sua posição, ou índice, na lista. É preciso ressaltar que todos os
elementos escalares aqui possuem o mesmo tipo, e que se não for especificado
durante a definição do array, o Numpy trabalhará uma rotina para determinar o
tipo que garanta a característica homogênea.

np.array([4, 5, 22, 20])

Array bidimensional: uma lista de arrays unidimensionais, com o formato de uma


matriz (tabela), onde precisamos especificar uma posição de linha e uma posição
de coluna para localizar um elemento escalar.

np.array([[3, 2, 7],
[4, 9, 1],
[5, 6, 8]])

Array tridimensional: uma lista de arrays bidimensionais. Um exemplo de


aplicação de array tridimensional é a matriz de imagem RGB, possível de se
observar no funcionamento de uma televisão. Nesse caso, nós temos uma
estrutura bidimensional (o formato da tela), em que podemos localizar uma
unidade de pixel com uma referência na vertical, e outra na horizontal. Para cada
unidade de pixel, também temos uma representação de um array de 3 elementos,
que é a junção de três leds de cores vermelha, verde e azul. Então, a nível
fundamental, podemos interpretar uma imagem como:

Array multidimensional (n-dimensional): as operações de criação de arrays no


Numpy não estão limitadas apenas às dimensões anteriores: é possível construir
estruturas de quantias maiores, tanto quanto mais forem necessárias, desde que
o critério dos objetos de mesmo nível possuam o mesmo formato. Uma maneira
de ilustrar esses novos níveis é através do seguinte esquema:

Nesse esquema, quando chegamos à quarta dimensão e além, é mais difícil


visualizar a matriz como um objeto geométrico. Em vez disso, podemos
interpretar uma matriz de ordem superior como um objeto matemático que
contém informações sobre outros objetos matemáticos.

Por exemplo, uma matriz de quarta ordem pode ser vista como uma matriz de
matrizes de matrizes, ou seja, cada elemento da matriz é uma matriz de matrizes.
Podemos interpretar essa matriz como um objeto matemático que contém
informações sobre vários objetos matemáticos mais simples.

Broadcasting
O broadcasting é uma funcionalidade do Numpy que permite trabalhar com
operações em arrays de formas e tamanhos diferentes, sem que seja necessário
criar cópias dos dados. Por esse motivo, é uma técnica que economiza tempo e
memória. Em muitos casos, o broadcasting pode reduzir o número de linhas de
código necessárias para realizar uma determinada operação.

Por exemplo, na operação abaixo:

import numpy as np

a = np.array([[1, 2], [3, 4]])


b = np.array([10, 20])

a + b

No exemplo acima, trabalhamos com a soma de dois arrays com dimensões


diferentes, no caso, um array unidimensional e uma matriz. No entanto, o Numpy
consegue analisar as dimensões, através de regras pré-estabelecidas, e executar
a operação, retornando:

array([[11, 22],
[13, 24]])

NumPy na computação científica


Por ser uma biblioteca do Python, uma grande vantagem de trabalhar com o
NumPy é a possibilidade de integração com outras bibliotecas do grande
ecossistema do Python. Isso abre espaço para trabalhar com soluções end-to-
end, que atendem desde o início, com coletas de dados, processamento, até a
entrega do produto final, por exemplo, uma dashboard ou sistema com uma
análise detalhada de modelos de aprendizado de máquina.

Essas características, somadas ao fato da biblioteca ser de código aberto e livre,


tornam o NumPy um grande concorrente de outras soluções presentes no
mercado e meio acadêmico, tais como o MATLAB, Octave, Scilab, entre outros.

Instalação do NumPy
Assim como em algumas outras bibliotecas importantes na Ciência de Dados,
como o Pandas, a instalação sugerida como sendo a mais simples na
documentação do NumPy é através da instalação do Anaconda.

O Anaconda é um ambiente de desenvolvimento voltado para Ciência de Dados


com Python e R, que trás instaladas várias bibliotecas e softwares de uso popular
no ramo. Dentre as bibliotecas instaladas, temos também o NumPy. Você pode
aprender como instalar o Anaconda no Windows através da documentação oficial
do Anaconda.

Uma outra maneira de instalar a biblioteca NumPy é utilizando o gerenciador de


pacotes do Python, o PIP.

Desde que você tenha feito o download do Python a partir do site oficial,
podemos utilizar o seguinte procedimento:

Atenção Caso você tenha mais de um disco rígido na sua máquina, é preciso
garantir que a instalação está sendo feita no mesmo disco onde o Python foi
"
instalado.

1 Para começar, devemos abrir o Prompt de Comando do seu sistema


operacional. No Windows, pressione as teclas de atalho Windows R, digite
“Prompt de Comando”, e clique na opção “Executar como administrador”:

2 O Prompt de Comando será aberto e surgirá a tela preta do terminal. Nesse


momento, podemos verificar a versão do Python instalada na máquina com o
comando python --version e garantir que podemos continuar:

python --version

Python 3.9.7

3 Caso você ainda não tenha o PIP instalado na máquina, pode instalá-lo
utilizando um módulo nativo do Python para isso, com o comando:

python -m ensurepip --upgrade

4 E, agora que já temos o PIP instalado na máquina, podemos utilizá-lo para


instalar o NumPy, com o comando:

pip install numpy

5 Pronto, agora nós já temos o NumPy instalado na máquina.

Indo além
Se você deseja mergulhar ainda mais nos conteúdos de Pandas e Ciência de
Dados, aqui na Alura nós temos a Formação Python para Data Science. A
formação aborda as principais ferramentas utilizadas em Ciência de Dados com
Python, tais como Pandas, Numpy, Matplotlib, Seaborn, e muito mais. Nela,
construímos vários projetos práticos para compor o seu portfólio como
profissional de dados.

E se você já deu seus primeiros passos nessa ferramenta, te convidamos a


participar dos Challenges de Data Science. Neles, você pode trabalhar na
construção de um portfólio de projetos, desenvolvendo habilidades em limpeza,
tratamento e visualização de dados, e também competências em Machine
Learning.

Links úteis:
Computação Evolucionária: Aplique os algoritmos genéticos com
Python e Numpy
Numpy Guide (livro do autor)
Livro Python for Data Analysis 3rd online version

Créditos
Conteúdo:

Marcus Almeida
Allan Spadini

Produção técnica:

Rodrigo Dias

Produção didática:

Thaís de Faria

Designer gráfico:

Alysson Manso

Marcus Almeida

Bacharelando em Engenharia Elétrica pelo Instituto Federal do Maranhão. Atuou como parte do Scuba Team da Escola de Dados na Alura,
trabalhando com conteúdos voltados a Data Science, Machine Learning, Python e SQL. Adora conversar tecnologia, universo geek, games e
também aprender coisas novas.

Artigo Anterior Próximo Artigo

Databricks: o que é e para que serve? Power BI o que é, para que serve, quem utiliza e um Guia para iniciar

Veja outros artigos sobre Data Science

Quer mergulhar em
tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights


do mercado de trabalho, ciência e desenvolvimento de software

Escreva seu email ME INSCREVA

Nossas redes e apps

AOVS Sistemas de Informática S.A


CNPJ 05.555.382/0001 33

Institucional A Alura Conteúdos Fale Conosco Novidades e Lançamentos

Sobre nós Formações Alura Cases Email e telefone Email* ENVIAR

Trabalhe conosco Como Funciona Imersões Perguntas frequentes

Para Empresas Todos os cursos Artigos

Para Sua Escola Depoimentos Podcasts

Política de Privacidade Instrutores(as) Artigos de educação


corporativa
Compromisso de Integridade Dev em T

Termos de Uso Luri by ChatGPT

Status

Parceiros

Fomos uma das 7 startups selecionadas


Nós, da Alura, somos uma das Scale-Ups pelo Google For Startups a participar do
selecionadas pela Endeavor, programa de programa Growth Academy em 2021.
aceleração das empresas que mais
crescem no país.

CURSOS

Cursos de Programação Lógica | Python | PHP | Java | .NET | Node JS | C | Computação | Jogos | IoT

Cursos de Front-end HTML, CSS | React | Angular | JavaScript | jQuery

Cursos de Data Science Ciência de dados | BI | SQL e Banco de Dados | Excel | Machine Learning | NoSQL | Estatística

Cursos de Inteligência IA para Programação | IA para Dados


Artificial
Cursos de DevOps AWS | Azure | Docker | Segurança | IaC | Linux

Cursos de UX & Design Usabilidade e UX | Vídeo e Motion | 3D

Cursos de Mobile React Native | Flutter | iOS e Swift | Android, Kotlin | Jogos

Cursos de Inovação & Gestão Métodos Ágeis | Softskills | Liderança e Gestão | Startups | Vendas

EDUCAÇÃO EM TECNOLOGIA MAIS ALURA COMUNIDADE PODCASTS

Alura FIAP Alura Start Tech Guide Hipsters ponto Tech

Casa do Código Alura Língua 7 days of code Dev sem Fronteiras

PM3 Cursos de Produto Alura Para Empresas Hipsters ponto Jobs Layers ponto Tech

Alura LATAM

Você também pode gostar