Menu
CoddyTech

Indexación y segmentación

Parte de la sección Datos y gráficos del Journey de Machine Learning de Coddy. Lección 8 de 60.

Los arreglos se indexan como las listas, desde 0. Cinco días de práctica de piano, en minutos:

practice = np.array([20, 0, 35, 15, 40])
print(practice[0])    # primero
print(practice[-1])   # último
print(practice[1:4])  # posiciones de 1 a 3

Esto imprime:

20
40
[ 0 35 15]

Una matriz 2D toma una fila y una columna en un par de corchetes, primero la fila. Cada fila de stock es una tienda; cada columna, un producto:

Una cuadrícula de 3 filas y 4 columnas de números; la celda de la fila 1, columna 2, que contiene 4, está sombreada con el tono más oscuro, y toda la columna 3, que contiene 6, 3 y 8, está sombreada

stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2])  # un valor
print(stock[0])     # una fila completa
print(stock[:, 3])  # una columna completa

Esto imprime:

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

En la posición de fila, dos puntos significa todas las filas y un segmento como 0:2 significa algunas de ellas. Así que data[:, column] es una característica para cada muestra.

challenge icon

Desafío

Fácil

El informe de un hotel es incorrecto. bookings tiene una fila por semana y una columna por día, de lunes a domingo. El programa lee una semana y un día, contados desde 1.

Cada línea tiene un error. Corrígelas para que coincidan con las etiquetas:

  • Week: la semana completa
  • Weekend: sus dos últimos días, un segmento
  • Day: ese día, de todas las semanas
  • Booked: ese día concreto

Para la semana 3, día 5:

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

Pruébalo tú mismo

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 cifras incorrectas: 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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Datos y gráficos

Practica por tu cuenta: Compilador de Python online