Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Fatiamento de arrays

Para realizar o fatiamento de arrays a unica sintaxe possivel é array[linha, coluna] correto? Pois tentei fatiar usando a sintaxe array[linha][coluna] e obtive resultado diferente do esperado:


dados = np.array([km, anos])
array([[44410.,  5712., 37123.,     0., 25757.],
       [ 2003.,  1991.,  1990.,  2019.,  2006.]])

dados[:,1:3]
array([[ 5712., 37123.],
       [ 1991.,  1990.]])

dados[:][1:3]
array([[2003., 1991., 1990., 2019., 2006.]])
1 resposta
solução

Oi Ricardo,

Exato! Quando você utiliza o comando dados[:][1:3] está realizando duas etapas distintas:

1 - Primeiro dados[:] é executado e retorna um array NumPy com todo o conteúdo do array dados, ou seja, é um passo desnecessário;

2- Depois a seleção das linhas [1:3] é realizada.

Como o array de exemplo tem 2 linhas e 5 colunas e sabemos que a indexação de arrays NumPy começam em zero, temos como resultado a seleção de somente as informações da segunda linha do array. Isto é equivalente a executar as seguintes linhas de código:

import numpy as np

km = [44410.,  5712., 37123.,     0., 25757.]
anos = [ 2003.,  1991.,  1990.,  2019.,  2006.]

dados = np.array([km, anos])

dados_new = dados[:]
dados_new[1:3]

Espero ter ajudado