Menu
CoddyTech

Đánh chỉ số và cắt mảng

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 8 trên 60.

Mảng (array) dùng chỉ số như danh sách (list), bắt đầu từ 0. Thời lượng luyện tập piano trong năm ngày, tính bằng phút:

practice = np.array([20, 0, 35, 15, 40])
print(practice[0])    # đầu tiên
print(practice[-1])   # cuối cùng
print(practice[1:4])  # vị trí từ 1 đến 3

Kết quả in ra là:

20
40
[ 0 35 15]

Mảng 2D dùng một cặp ngoặc vuông để chỉ hàng và cột, hàng trước. Mỗi hàng của stock là một cửa hàng, mỗi cột là một sản phẩm:

Lưới gồm 3 hàng và 4 cột số; ô ở hàng 1, cột 2 có giá trị 4 được tô đậm nhất, toàn bộ cột 3 có các giá trị 6, 3 và 8 được tô màu

stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2])  # một giá trị
print(stock[0])     # cả một hàng
print(stock[:, 3])  # cả một cột

Kết quả in ra là:

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

Ở vị trí hàng, dấu hai chấm có nghĩa là mọi hàng, còn lát cắt như 0:2 có nghĩa là một số hàng. Vì vậy, data[:, column] là một đặc trưng cho mọi mẫu.

challenge icon

Thử thách

Dễ

Báo cáo của một khách sạn không chính xác. bookings có một hàng cho mỗi tuần và một cột cho mỗi ngày, từ thứ Hai đến Chủ nhật. Chương trình đọc tuần và ngày, được đánh số từ 1.

Mỗi dòng có một lỗi. Hãy sửa chúng để khớp với nhãn:

  • Week: cả tuần
  • Weekend: hai ngày cuối tuần đó, một lát cắt
  • Day: ngày đó trong mọi tuần
  • Booked: ngày duy nhất đó

Với tuần 3, ngày 5:

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

Tự làm thử

import numpy as np

# Số phòng được đặt tại một khách sạn nhỏ: mỗi hàng tương ứng với một tuần (từ tuần 1 đến tuần 4),
# mỗi cột tương ứng với một ngày (từ ngày 1 đến ngày 7, từ thứ Hai đến Chủ nhật)
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())

# Báo cáo in ra các số không đúng: bạn sửa các dòng bên dưới
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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

Tự luyện tập: Trình biên dịch Python online