Além do Pandas, NumPy, que é um acrônimo para Numerical Pyt...
Seja o dataframe Pandas df carregado da tabela Financiamento e um extrato de seus dados mostrado abaixo.
E seja o seguinte código NumPy, que transforma df em matriz e manipula suas linhas e colunas.
import numpy as np matriz = df.values subconjunto = matriz[matriz[:, 1] == 1, 4:6]
Das opções abaixo, a que apresenta corretamente o array extraído pela operação NumPy é:
Comentários
Veja os comentários dos nossos alunos
Em resumo, a questão pede que o camarada resolva 2 matrizes, uma grande e uma menor .
A matriz maior tem como argumento de linha a matriz (ou máscara booleana se quiser ser mais técnico):
matriz[:, 1] == 1
E como colunas: 4:6
Resolvendo o primeiro argumento:
1ª ) matriz[:, 1] == 1 --> retorna a coluna 1 de todas as linhas que o projeto_id == 1
obs.: dois pontos sem números significa todas as linhas ou todas as colunas dependendo da posição
Com isso, selecionamos aqueles de financiamento_id de números 0, 1 e 2
2ª ) 4:6 --> selecionamos as colunas 4 e 5 daquele resultado que conseguimos acima (essa seleção exclui o último termo)
Resposta: letra A.
d-
[matriz[:, 1] == 1, 4:6]
1° col, filtro == 1
seleciona os valores da 4° a 5° col. range nao inclui o threshold final
Vou tentar explicar de uma maneira mais didática
Nós temos um dataframe que é a tabela que visualizamos na questão.
O examinador dá um trecho de código com a biblioteca NumPy e então o dataframe é transformado em um array multidimensional (ndarray) por meio do comando df.values e então ele faz um fatiamento desse array ( o subconjunto, como pede a questão)
A sintaxe básica de um fatiamento de um array numpy é: array[linha, coluna] ou ainda melhor array[inicio:fim:passo , inicio:fim:passo]
O subconjunto então faz: matriz[
matriz[:, 1] == 1, # linhas
4:6 # colunas
]
Primeiro é feita a seleção das linhas por meio da expressão matriz[:, 1] == 1. O : significa "todas as linhas", enquanto o 1 representa a segunda coluna (lembrando que a indexação começa em 0), que corresponde à coluna projeto_id. Em seguida, == 1 mantém apenas as linhas em que projeto_id é igual a 1.
Depois dessa filtragem, o código faz a seleção das colunas utilizando 4:6. Como esse trecho está após a vírgula, ele se refere às colunas. O intervalo 4:6 seleciona as colunas de índices 4 e 5 (o índice final não é incluído), que correspondem a data_termino e valor.
array([
['2023-05-31', 10000.0],
['2023-06-30', 4000.0],
['2023-11-30', 7000.0]
])
Gabarito Letra A
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo