Menu
CoddyTech

Indicizzazione e slicing

Fa parte della sezione Dati e grafici del percorso Machine Learning di Coddy. Lezione 8 di 60.

Gli array hanno indici come le liste, a partire da 0. Cinque giorni di esercitazioni al pianoforte, in minuti:

practice = np.array([20, 0, 35, 15, 40])
print(practice[0])    # primo
print(practice[-1])   # ultimo
print(practice[1:4])  # posizioni da 1 a 3

Questo stampa:

20
40
[ 0 35 15]

Un array 2D usa una riga e una colonna in una coppia di parentesi, prima la riga. Ogni riga di stock è un negozio, ogni colonna un prodotto:

Una griglia di 3 righe e 4 colonne di numeri; la cella nella riga 1, colonna 2, che contiene 4, è ombreggiata più scura, e l'intera colonna 3, che contiene 6, 3 e 8, è ombreggiata

stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2])  # un valore
print(stock[0])     # un'intera riga
print(stock[:, 3])  # un'intera colonna

Questo stampa:

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

Nel punto della riga, i due punti indicano ogni riga e un intervallo come 0:2 alcune di esse. Quindi data[:, column] è una caratteristica per ogni campione.

challenge icon

Sfida

Facile

Il report di un hotel è sbagliato. bookings ha una riga per settimana e una colonna per giorno, da lunedì a domenica. Il programma legge una settimana e un giorno, numerati a partire da 1.

Ogni riga contiene un bug. Correggili in modo che corrispondano alle etichette:

  • Week: l'intera settimana
  • Weekend: gli ultimi due giorni, una fetta
  • Day: quel giorno, ogni settimana
  • Booked: quel singolo giorno

Per la settimana 3, giorno 5:

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

Provalo tu

import numpy as np

# Habitaciones reservadas en un hotel pequeño: una fila por semana (semanas 1 a 4),
# una columna por día (días 1 a 7, de lunes 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())

# El informe muestra números incorrectos: corrige las líneas siguientes
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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Dati e grafici

Esercitati da solo: Compilatore Python online