Menu
CoddyTech

Indexação e fatiamento

Parte da seção Dados e gráficos do Journey de Machine Learning da Coddy. Lição 8 de 60.

Arrays são indexados como listas, começando em 0. Cinco dias de prática de piano, em minutos:

practice = np.array([20, 0, 35, 15, 40])
print(practice[0])    # primeiro
print(practice[-1])   # último
print(practice[1:4])  # posições de 1 a 3

Isso imprime:

20
40
[ 0 35 15]

Um array 2D recebe uma linha e uma coluna em um par de colchetes, primeiro a linha. Cada linha de stock é uma loja, cada coluna, um produto:

Uma grade de 3 linhas e 4 colunas de números; a célula na linha 1, coluna 2, que contém 4, está sombreada com a cor mais escura, e toda a coluna 3, que contém 6, 3 e 8, está sombreada

stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2])  # um valor
print(stock[0])     # uma linha inteira
print(stock[:, 3])  # uma coluna inteira

Isso imprime:

4
[5 8 2 6]
[6 3 8]

Na posição de linha, dois-pontos significa todas as linhas, e um intervalo como 0:2 significa algumas delas. Portanto, data[:, column] é um recurso para cada amostra.

challenge icon

Desafio

Fácil

O relatório de um hotel está errado. bookings tem uma linha por semana e uma coluna por dia, de segunda a domingo. O programa lê uma semana e um dia, contados a partir de 1.

Cada linha tem um bug. Corrija-os para corresponder aos rótulos:

  • Week: a semana inteira
  • Weekend: os dois últimos dias, uma fatia
  • Day: esse dia, em todas as semanas
  • Booked: aquele dia específico

Para a semana 3, dia 5:

Week 3: [11 12 13 17 20 24 26]
Weekend: [24 26]
Day 5: [18 19 20 21]
Booked: 20

Experimente você mesmo

import numpy as np

# Quartos reservados em um pequeno hotel: uma linha por semana (semanas 1 a 4),
# uma coluna por dia (dias 1 a 7, de segunda-feira a domingo)
bookings = np.array([
    [12, 15, 14, 16, 18, 25, 27],
    [10, 13, 15, 14, 19, 26, 28],
    [11, 12, 13, 17, 20, 24, 26],
    [9, 14, 16, 15, 21, 27, 29],
])
week = int(input())
day = int(input())

# O relatório exibe os números errados: corrija as linhas abaixo
row = bookings[week]
print(f"Week {week}: {row}")
print(f"Weekend: {row[5:6]}")
print(f"Day {day}: {bookings[day - 1]}")
print(f"Booked: {bookings[day - 1, week - 1]}")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Dados e gráficos

Pratique por conta própria: Compilador de Python online