Menu
CoddyTech

인덱싱과 슬라이싱

Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 8번째.

배열은 리스트처럼 0부터 인덱싱됩니다. 피아노 연습 5일분(분 단위):

practice = np.array([20, 0, 35, 15, 40])
print(practice[0])    # 첫 번째
print(practice[-1])   # 마지막
print(practice[1:4])  # 위치 1부터 3까지

다음이 출력됩니다:

20
40
[ 0 35 15]

2차원 배열은 하나의 대괄호 쌍 안에 행과 열을 순서대로 받습니다. stock의 각 행은 상점 하나를, 각 열은 상품 하나를 나타냅니다:

숫자가 있는 3행 4열 격자입니다. 1행 2열의 값 4가 들어 있는 셀은 가장 진하게 음영 처리되어 있고, 값 6, 3, 8이 들어 있는 3열 전체도 음영 처리되어 있습니다

stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2])  # 값 하나
print(stock[0])     # 행 전체
print(stock[:, 3])  # 열 전체

다음과 같이 출력됩니다:

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

행 위치에서 콜론은 모든 행을 의미하고, 0:2와 같은 슬라이스는 그중 일부를 의미합니다. 따라서 data[:, column]은 모든 샘플에 대한 하나의 특성입니다.

challenge icon

챌린지

쉬움

호텔의 보고서가 잘못되었습니다. bookings에는 주마다 한 행, 월요일부터 일요일까지 하루마다 한 열이 있습니다. 프로그램은 1부터 세는 주와 일을 입력받습니다.

각 줄에는 버그가 하나씩 있습니다. 레이블과 일치하도록 수정하세요.

  • Week: 한 주 전체
  • Weekend: 마지막 이틀, 슬라이스
  • Day: 모든 주의 해당 요일
  • Booked: 해당 날짜의 값 하나

3주 차, 5일 차인 경우:

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

직접 해보기

import numpy as np

# 작은 호텔에서 예약된 객실 수: 주마다 한 행씩 (1주차부터 4주차까지),
# 하루마다 한 열씩 (1일부터 7일까지, 월요일부터 일요일까지)
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())

# 보고서에 잘못된 숫자가 출력됩니다: 아래 줄을 수정하세요
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 icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

데이터와 시각화의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러