0% acharam este documento útil (0 voto)
2 visualizações55 páginas

Slide de Python 07

O documento apresenta uma introdução ao uso de módulos, pacotes e bibliotecas em Python, destacando a diferença entre eles. Além disso, discute a importância dos arrays na programação científica, comparando-os com listas e introduzindo o módulo array e a biblioteca NumPy para operações matemáticas eficientes. O NumPy é enfatizado como uma ferramenta essencial para ciência de dados devido à sua capacidade de realizar operações vetorizadas em arrays n-dimensionais.

Enviado por

Saulo Tiburtius
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações55 páginas

Slide de Python 07

O documento apresenta uma introdução ao uso de módulos, pacotes e bibliotecas em Python, destacando a diferença entre eles. Além disso, discute a importância dos arrays na programação científica, comparando-os com listas e introduzindo o módulo array e a biblioteca NumPy para operações matemáticas eficientes. O NumPy é enfatizado como uma ferramenta essencial para ciência de dados devido à sua capacidade de realizar operações vetorizadas em arrays n-dimensionais.

Enviado por

Saulo Tiburtius
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

INTRODUÇÃO AO PYTHON PARA

CIÊNCIA DE DADOS

Prof. Dr. Anderson Ara

Prof. Dr. José Jairo de S. e Silva

Slide 07
Módulos, Pacotes e Bibliotecas em Python
2 / 55
Módulo, Pacote e Biblioteca em Python

Em Python esses termos são frequentes, mas não são exatamente sinônimos.

Módulo: É um arquivo único (.py) que contém funções e variáveis reutilizáveis.


Exemplo: math, random.

Pacote: É uma coleção de módulos organizados em pastas, com um arquivo __init__.py.


Exemplo: [Link], [Link].

Biblioteca: É um termo mais abrangente, usado para se referir a um conjunto de módulos e


pacotes, geralmente pensado como uma solução completa para certo domínio.
Exemplo: numpy, pandas e scikit-learn.

PS: Tecnicamente, o math não é um pacote, mas sim um módulo embutido (built-in module) da
biblioteca padrão do Python.

3 / 55
Comparação: Módulo, Pacote e Biblioteca

Conceito Definição Exemplo de Estrutura Exemplos no Python


Arquivo único .py com funções,
Módulo [Link] math, random, os
classes e variáveis reutilizáveis
Conjunto de módulos organizados [Link],
Pacote numpy/linalg/
em pastas, contém __init__.py [Link]
Conjunto mais amplo de pacotes
numpy/ (com vários numpy, pandas,
Biblioteca e módulos com propósito
pacotes e módulos dentro) scikit-learn, dask
específico

Resumindo:

Módulo = unidade básica de código.


Pacote = coleção organizada de módulos.
Biblioteca = conjunto de pacotes e módulos para resolver problemas complexos.

4 / 55
ARRAYS

5 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Arrays

Os arrays são uma das estruturas mais importantes na programação científica.

Eles permitem armazenar e manipular coleções de dados de forma eficiente.

Um array pode ser entendido como uma tabela de elementos do mesmo tipo. Cada item ocupa
uma posição ordenada, e o acesso a qualquer elemento é feito diretamente pelo índice.

Isso garante velocidade e previsibilidade, duas características essenciais em cálculos numéricos de


grande escala.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 6 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Arrays

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 7 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Arrays

É comum começar com listas em Python, pois elas são flexíveis e aceitam diferentes tipos de dados
em uma mesma estrutura.

Contudo, essa flexibilidade tem um preço: operações matemáticas não são naturais em listas e o
consumo de memória é relativamente alto.

Arrays, ao contrário, são projetados para lidar com coleções homogêneas e realizar cálculos de
maneira muito mais eficiente.

Embora eles tenham muitas semelhanças, Listas e Arrays são implementações diferentes em
Python.

Os arrays não são uma estrutura de dados nativa do Python. Por isso, para utilizá-los, é necessário
importar um pacote (array ou NumPy).

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 8 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# Lista Array
A lista é usada para coletar itens que Um array também é um componente
1 geralmente consistem em elementos de importante que coleta vários itens do mesmo
múltiplos tipos de dados. tipo de dado.
A lista não consegue realizar operações O array consegue realizar operações
2
aritméticas. aritméticas.
A lista pode conter elementos de diferentes O array contém elementos que pertencem ao
3
tipos de dados. mesmo tipo de dado.
Em termos de flexibilidade, o array não é tão
Em termos de flexibilidade, a lista é perfeita,
4 adequado, já que não permite modificações
pois permite fácil modificação dos dados.
tão fáceis.
5 Consome mais memória. Consome menos memória que uma lista.
Em uma lista, todos os elementos podem ser
Em um array, é obrigatório usar um loop para
6 acessados sem a necessidade de um loop
acessar os componentes.
específico.
É mais adequado para sequências curtas de É mais adequado para sequências longas de
7
dados. dados.
Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 9 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Arrays

No Python puro, existe o módulo array, que permite criar arrays homogêneos. Entretanto, seu uso
é restrito e menos comum.

Para ciência de dados, estatística e aprendizado de máquina, a comunidade científica adota o


NumPy, que fornece arrays n-dimensionais poderosos e uma enorme variedade de funções
matemáticas.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 10 / 55
O Módulo Array
11 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Modulo Array

Como vimos na tabela, o Python oferece uma estrutura de dados tipo array em seu ecossistema
padrão, através do módulo array.

Seu principal objetivo é fornecer uma maneira eficiente em termos de memória para armazenar
uma sequência de itens de um mesmo tipo numérico.

Vamos ver como ele funciona na prática e entender suas vantagens e, principalmente, suas
limitações para a Ciência de Dados.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 12 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Criando um array

A sintaxe para criar um array é:

import array
[Link]('typecode', [elementos])

O 'typecode' é uma string que define o tipo dos elementos.

13 / 55
Typecodes do módulo array em Python
O módulo array do Python cria arrays homogêneos, ou seja, todos os elementos devem ser do
mesmo tipo. Para definir esse tipo, usamos um typecode (um único caractere que representa o tipo
dos dados).

Principais typecodes:

Typecode Tipo em C Tipo em Python Tamanho (bytes)


'b' signed char int (valores -128 a 127) 1
'B' unsigned char int (0 a 255) 1
'h' signed short int 2
'H' unsigned short int 2
'i' signed int int 4
'I' unsigned int int 4
'f' float float 4
'd' double float 8
14 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Exemplo:

import array
# Criando uma lista de inteiros (typecode 'i')

numeros_inteiros = [Link]('i', [1, 2, 3, 4, 5])


type(numeros_inteiros)

## <class '[Link]'>

print(numeros_inteiros)

## array('i', [1, 2, 3, 4, 5])

# Criando uma lista de floats (typecode 'f')


numeros_reais = [Link]('f', [1.0, 2.5, 3.14, 4.0])
print(numeros_reais)

## array('f', [1.0, 2.5, 3.140000104904175, 4.0])

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 15 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# Tentar usar tipos mistos gera erro


try:
[Link]('i', [1, 2, 'texto'])
except TypeError as e:
print(f"\nErro: {e}")

##
## Erro: 'str' object cannot be interpreted as an integer

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 16 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Indexação, slicing e laços

import array as arr


a = [Link]('i', [10, 20, 30, 40, 50])
a[0], a[2], a[-1] # 10, 50
a[:3], a[1:4], a[::2] # fatias

for x in a: # iteração direta


print(x)

for i in range(len(a)):
print(i, a[i]) # por índice

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 17 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Modificar, inserir e remover

a = [Link]('i', [10, 20, 30])


a[1] = 99 # altera
[Link](40) # +1 valor
[Link]([50, 60]) # +vários
[Link](1, 15) # insere na posição 1
[Link](10) # remove 1ª ocorrência do valor 10
x = [Link](2) # remove pelo índice 2

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 18 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Onde o array se destaca (e onde não)


Vantagens:
Memória: Como todos os elementos são do mesmo tipo, o Python armazena os dados de
forma compacta e contígua na memória, consumindo significativamente menos espaço
que uma lista para grandes volumes de dados.

Limitação Crucial
Operações Matemáticas: A tabela indicava que arrays realizam operações aritméticas. Isso é
uma meia-verdade. O módulo array NÃO suporta operações matemáticas em todos os
elementos de uma vez (vetorização).

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 19 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Exemplo:

import array
meu_array = [Link]('i', [10, 20, 30])

print(f"Saída: {meu_array * 2}")

## Saída: array('i', [10, 20, 30, 10, 20, 30])

Como podemos ver, multiplicar um array por 2 não multiplica cada elemento por 2, mas sim
repete o array.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 20 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Para fazer a operação, ainda precisamos de um loop:

resultado = [Link]('i', [elemento * 2 for elemento in meu_array])


print(f"Resultado com loop: {resultado}")

## Resultado com loop: array('i', [20, 40, 60])

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 21 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

O módulo array é uma ferramenta útil para um propósito específico: armazenar grandes
sequências de dados numéricos de forma compacta.

Ele é mais eficiente em memória do que as listas.

Porém, para a Ciência de Dados, suas limitações são diversas:

Não realiza operações vetorizadas (código lento e verboso com loops).


É estritamente unidimensional (não serve para matrizes ou tensores).
Possui um conjunto muito limitado de funcionalidades.

Precisamos de uma ferramenta que combine a eficiência de memória de um array com o poder
de realizar operações matemáticas complexas de forma simples e rápida em múltiplas
dimensões.

É aqui que entra uma das bibliotecas fundamentais da computação científica em Python: o
NumPy.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 22 / 55
Pacote NumPy

23 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy significa “Numerical Python”.


Iniciado em 2006, o NumPy é um pacote voltado para computação científica e análise de dados.

O NumPy utiliza um objeto de array multidimensional e oferece diversas funções e ferramentas


para trabalhar com esses arrays.

Além disso, o NumPy pode ser facilmente integrado a outros pacotes do ecossistema Python e
também oferece recursos para interação com linguagens de programação como C e C++.

Fornece recursos para álgebra linear, geração de números aleatórios e mais.

Documentação em: [Link]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 24 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

O array n-dimensional do NumPy acelera o processamento de dados, permitindo operações


rápidas e eficientes.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 25 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Criar um array no NumPy é simples, podemos criar um array a partir de uma lista comum:

import numpy as np
a = [Link]([1, 2, 3, 4, 5])
b = [Link]([5, 6, 7, 8, 9])

Esses objetos (vetores) agora permitem operações matemáticas vetorizadas, algo impossível em
uma lista comum.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 26 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

A diferença fica clara quando realizamos operações.

Multiplicar uma lista por 2 gera apenas uma repetição da lista.

Já em um array NumPy, cada elemento é multiplicado por 2, gerando outro array.

É justamente essa característica que torna os arrays tão úteis em cálculos numéricos.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 27 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

import numpy as np
# Array NumPy
meu_array = [Link]([10, 20, 30])

# Multiplicação por 2 é feita elemento a elemento


resultado = meu_array * 2
print(resultado)

## [20 40 60]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 28 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

A função [Link]() também permite definir arrays de várias dimensões. Por exemplo:

b = [Link]([[1, 2], [3, 4]])


type(b)

## <class '[Link]'>

print(b)

## [[1 2]
## [3 4]]

Nesse caso, temos uma matriz 2x2. Essa generalização para dimensões maiores é a base para
manipulação de dados em estatística, imagens, sinais e até redes neurais.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 29 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Uma das vantagens do NumPy é o controle sobre o tipo dos dados.

É possível especificar que um array deve ser inteiro, ponto flutuante ou mesmo valores complexos.

Isso garante consistência e evita erros ao realizar operações matemáticas em larga escala.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 30 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

import numpy as np
# array de inteiros
arr_int = [Link]([1, 2, 3, 4], dtype=int)
print("Inteiros:", arr_int, "| Tipo:", arr_int.dtype)

## Inteiros: [1 2 3 4] | Tipo: int64

# array de floats
arr_float = [Link]([1, 2, 3, 4], dtype=float)
print("Floats:", arr_float, "| Tipo:", arr_float.dtype)

## Floats: [1. 2. 3. 4.] | Tipo: float64

# array de números complexos


arr_complex = [Link]([1, 2, 3, 4], dtype=complex)
print("Complexos:", arr_complex, "| Tipo:", arr_complex.dtype)

## Complexos: [1.+0.j 2.+0.j 3.+0.j 4.+0.j] | Tipo: complex128

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 31 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# operações coerentes com o tipo


print("arr_int * 2 =", arr_int * 2) # continua inteiro

## arr_int * 2 = [2 4 6 8]

print("arr_float / 2 =", arr_float / 2) # resultado float

## arr_float / 2 = [0.5 1. 1.5 2. ]

print("arr_complex + 1j =", arr_complex + 1j) # operação com números complexos

## arr_complex + 1j = [1.+1.j 2.+1.j 3.+1.j 4.+1.j]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 32 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

O acesso aos elementos de um array é feito por índices, assim como em listas. O primeiro elemento
é acessado com a[0]. Também é possível acessar subconjuntos usando fatias: a[1:4] retorna os
elementos de índice 1 até 3. Esse mecanismo é chamado de slicing e é fundamental para trabalhar
com grandes volumes de dados.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 33 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

import numpy as np
# Criando um array NumPy
a = [Link]([10, 20, 30, 40, 50, 60])

# Acesso por índice


print("Primeiro elemento (a[0]):", a[0]) # 10

## Primeiro elemento (a[0]): 10

print("Terceiro elemento (a[2]):", a[2]) # 30

## Terceiro elemento (a[2]): 30

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 34 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

# Slicing
print("Elementos de índice 1 até 3 (a[1:4]):", a[1:4])

## Elementos de índice 1 até 3 (a[1:4]): [20 30 40]

# Saída: [20 30 40]

print("Todos os elementos a partir do índice 2 (a[2:]):", a[2:])

## Todos os elementos a partir do índice 2 (a[2:]): [30 40 50 60]

# Saída: [30 40 50 60]

print("Elementos até o índice 3 (a[:4]):", a[:4])

## Elementos até o índice 3 (a[:4]): [10 20 30 40]

Prof. Dr.#Anderson
Saída: Ara -[10
DEST/LEG/UFPR
20 30 40]- ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 35 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Além do slicing tradicional, o NumPy oferece seleção por máscaras booleanas. Isso significa que
podemos criar condições e extrair apenas os elementos que as satisfazem. Por exemplo, a[a > 2]
retorna apenas os valores maiores que 2. Esse recurso é essencial em análises estatísticas e
filtragem de dados.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 36 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

a = [Link]([1, 2, 3, 4, 5, 6])

# Máscara booleana: elementos maiores que 2


masc = a > 2
print("Máscara booleana:", masc)

## Máscara booleana: [False False True True True True]

# Usando a máscara para filtrar elementos


print("Elementos maiores que 2:", a[masc])

## Elementos maiores que 2: [3 4 5 6]

# Outro exemplo: números pares


print("Elementos pares:", a[a % 2 == 0])

## Elementos pares: [2 4 6]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 37 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Os arrays NumPy também permitem operações matriciais. A multiplicação entre matrizes pode ser
feita com @ ou com a função [Link]().

Isso aproxima o NumPy da álgebra linear tradicional e conecta Python a áreas como estatística
multivariada e aprendizado de máquina.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 38 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

import numpy as np
# Definindo duas matrizes 2x2
A = [Link]([[1, 2],
[3, 4]])

B = [Link]([[5, 6],
[7, 8]])

# Multiplicação matricial
print("A @ B =\n", A @ B)

## A @ B =
## [[19 22]
## [43 50]]

print("[Link](A, B) =\n", [Link](A, B))

## [Link](A, B) =
## [[19 22]
## [43 50]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 39 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Outra característica fundamental é a capacidade de manipular a forma (shape) dos arrays. Com
reshape(), podemos transformar um vetor de tamanho 6 em uma matriz 2x3.

Essa flexibilidade é útil para reorganizar dados de acordo com a análise desejada.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 40 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

import numpy as np
# Criando um array 1D (vetor) com 6 elementos
a = [Link]([1, 2, 3, 4, 5, 6])
print("Array original:", a)

## Array original: [1 2 3 4 5 6]

print("Shape original:", [Link])

## Shape original: (6,)

# Transformando em uma matriz 2x3


b = [Link](2, 3)
print("\nArray reshape para 2x3:\n", b)

##
## Array reshape para 2x3:
## [[1 2 3]
## [4 5 6]]

Prof. [Link]("Novo shape:",- ara@[Link]


Anderson Ara - DEST/LEG/UFPR [Link]) & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 41 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# Também podemos criar uma matriz 3x2


c = [Link](3, 2)
print("\nArray reshape para 3x2:\n", c)

##
## Array reshape para 3x2:
## [[1 2]
## [3 4]
## [5 6]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 42 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Podemos alterar um elemento diretamente pelo índice:

a=[Link]([1,2,3,4,5,6])
print(a)

## [1 2 3 4 5 6]

a[0] = 10
print(a)

## [10 2 3 4 5 6]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 43 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

import numpy as np
A=[Link]([[1,2,3],
[4,5,6]])
print(A)

## [[1 2 3]
## [4 5 6]]

A[0,0] = 10
print(A)

## [[10 2 3]
## [ 4 5 6]]

A[0][0] = 20
print(A)

Prof. Dr.
##Anderson
[[20 Ara2- DEST/LEG/UFPR
3] - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 44 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy

Também é possível adicionar novas linhas, concatenar arrays e até remover elementos.

Essa maleabilidade permite adaptar os dados a diferentes contextos de análise sem a necessidade
de recriar estruturas do zero.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 45 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

arr = [Link]([[1, 2, 3],


[4, 5, 6]])

print("Array inicial:\n", arr)

## Array inicial:
## [[1 2 3]
## [4 5 6]]

# adicionar nova linha


nova_linha = [Link]([[7, 8, 9]])
arr_expandido = [Link]((arr, nova_linha))

print("\nArray após adicionar nova linha:\n", arr_expandido)

##
## Array após adicionar nova linha:
## [[1 2 3]
## [4 5 6]
## [7 8 9]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 46 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# concatenar arrays
outro_arr = [Link]([[10, 11, 12]])
concatenado = [Link]((arr_expandido, outro_arr), axis=0)
print("\nArray após concatenar outro array:\n", concatenado)

##
## Array após concatenar outro array:
## [[ 1 2 3]
## [ 4 5 6]
## [ 7 8 9]
## [10 11 12]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 47 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

# Removendo a primeira coluna


removido = [Link](concatenado, 0, axis=1)
print("\nArray após remover a primeira coluna:\n", removido)

##
## Array após remover a primeira coluna:
## [[ 2 3]
## [ 5 6]
## [ 8 9]
## [11 12]]

#Removendo a última linha


removido2 = [Link](removido, -1, axis=0)
print("\nArray após remover a última linha:\n", removido2)

##
## Array após remover a última linha:
## [[2 3]
## [5 6]
## [8 9]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 48 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

NumPy Broadcasting

Broadcasting é um mecanismo do NumPy que permite realizar operações matemáticas entre


arrays de tamanhos ou formas diferentes, sem escrever laços explícitos.

Em vez de duplicar os dados, o NumPy “expande virtualmente” os arrays menores para que
tenham a mesma forma que os maiores, aplicando a operação elemento a elemento.

A = [Link]([[1, 2, 3],
[4, 5, 6]])
b = [Link]([10, 20, 30])

print(A + b)

## [[11 22 33]
## [14 25 36]]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 49 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Funções no NumPy

Um dos pontos fortes do NumPy é a grande coleção de funções matemáticas prontas para uso.
Operações como soma, média, desvio padrão, logaritmos e exponenciais podem ser aplicadas
diretamente ao array inteiro, sem a necessidade de laços de repetição. Isso deixa o código mais
limpo e muito mais rápido.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 50 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Funções Matemáticas no NumPy

O NumPy oferece diversas funções matemáticas prontas.

b = [Link]([1, 2, 3, 4])

print("Exponencial:", [Link](b))

## Exponencial: [ 2.71828183 7.3890561 20.08553692 54.59815003]

print("Logaritmo:", [Link](b))

## Logaritmo: [0. 0.69314718 1.09861229 1.38629436]

print("Raiz quadrada:", [Link](b))

## Raiz quadrada: [1. 1.41421356 1.73205081 2. ]

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 51 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Funções Estatísticas no NumPy

a = [Link]([1, 2, 3, 4, 5])

print("Soma:", [Link](a))

## Soma: 15

print("Média:", [Link](a))

## Média: 3.0

print("Variância:", [Link](a))

## Variância: 2.0

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 52 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Funções Estatísticas no NumPy

print("Desvio padrão:", [Link](a))

## Desvio padrão: 1.4142135623730951

print("Mínimo:", [Link](a))

## Mínimo: 1

print("Máximo:", [Link](a))

## Máximo: 5

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 53 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Arrays e NumPy Arrays

Arrays (do módulo array) são coleções homogêneas, ou seja, todos os elementos devem ter o
mesmo tipo. Isso os torna mais compactos e eficientes em memória que listas.

NumPy Arrays (ndarray) vão além: são estruturas altamente otimizadas para computação
científica, suportando operações vetorizadas, broadcasting, funções matemáticas, manipulação
de formas (reshape) e integração com bibliotecas em C e Fortran.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 54 / 55
INTRODUÇÃO AO PYTHON PARA CIÊNCIA DE DADOS

Listas x Arrays x NumPy

Um overview:

Listas: flexíveis, aceitam tipos variados, código mais simples.


Arrays (array): homogêneos, menos memória; bons para E/S binária e interoperabilidade.
NumPy Arrays: vetorização, álgebra, broadcasting; ideal para cálculo científico e desempenho.

Prof. Dr. Anderson Ara - DEST/LEG/UFPR - ara@[Link] & Prof. Dr. José Jairo de S. e Silva - [Link]@[Link] 55 / 55

Você também pode gostar