넘파이 공부에 참고한 자료들
3장 넘파이 배열 프로그래밍 — 데이터 사이언스 스쿨
Contents
datascienceschool.net
01. 넘파이
넘파이
wikidocs.net
NumPy 문제 모음
Q1
리스트를 NumPy 배열로 변환하세요.
data = [10, 20, 30, 40]
A. 정답 코드 (접기/펼치기)
arr = np.array(data)
print(arr)
Q2
모든 값이 1인 3행 2열 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.ones((3, 2))
print(arr)
Q3
모든 값이 0인 2행 4열 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.zeros((2, 4))
print(arr)
Q4
3×3 단위행렬을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.eye(3)
print(arr)
Q5
표준 정규분포 난수 5개로 이루어진 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.random.randn(5)
print(arr)
Q6
두 배열의 원소별 곱을 구하세요.
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
A. 정답 코드 (접기/펼치기)
result = a * b
print(result)
Q7
다음 두 행렬의 행렬곱을 구하세요.
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
A. 정답 코드 (접기/펼치기)
result = np.dot(A, B)
print(result)
Q8
배열의 형태(shape)를 출력하세요.
A = np.array([[1, 2, 3],
[4, 5, 6]])
A. 정답 코드 (접기/펼치기)
print(A.shape)
Q9
1차원 배열을 3행 2열로 변경하세요.
arr = np.array([1, 2, 3, 4, 5, 6])
A. 정답 코드 (접기/펼치기)
result = arr.reshape(3, 2)
print(result)
Q10
0 이상 20 미만의 수 중 3씩 증가하는 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.arange(0, 20, 3)
print(arr)
Q11
0부터 1까지를 5개로 균등 분할한 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.linspace(0, 1, 5)
print(arr)
Q12
배열의 첫 번째 값을 출력하세요.
A = np.array([10, 20, 30, 40])
A. 정답 코드 (접기/펼치기)
print(A[0])
Q13
20, 30, 40만 출력하세요.
A = np.array([10, 20, 30, 40, 50])
A. 정답 코드 (접기/펼치기)
print(A[1:4])
Q14
0보다 큰 값만 출력하세요.
A = np.array([-3, -1, 0, 2, 4])
A. 정답 코드 (접기/펼치기)
print(A[A > 0])
Q15
0~1 사이 균등분포 난수로 2행 3열 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.random.rand(2, 3)
print(arr)
Q16
표준 정규분포 난수로 2행 2열 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.random.randn(2, 2)
print(arr)
Q17
1 이상 10 미만 정수 난수로 3행 3열 배열을 생성하세요.
A. 정답 코드 (접기/펼치기)
arr = np.random.randint(1, 10, (3, 3))
print(arr)
Q18
배열에서 랜덤으로 4개를 선택하세요(중복 허용).
a = np.array([1, 2, 3, 4, 5])
A. 정답 코드 (접기/펼치기)
result = np.random.choice(a, 4)
print(result)
Q19
배열을 전치하세요.
A = np.array([[1, 2, 3],
[4, 5, 6]])
A. 정답 코드 (접기/펼치기)
print(A.T)
Q20
최댓값을 출력하세요.
A = np.array([3, 7, 2, 9, 5])
A. 정답 코드 (접기/펼치기)
print(np.max(A))
Q21
최댓값의 인덱스를 출력하세요.
A = np.array([3, 7, 2, 9, 5])
A. 정답 코드 (접기/펼치기)
print(np.argmax(A))
Q22
모든 원소에 10을 더하세요.
A = np.array([1, 2, 3])
A. 정답 코드 (접기/펼치기)
print(A + 10)
Q23
두 배열을 세로 방향(axis=0)으로 연결하세요.
A = np.array([[1, 2]])
B = np.array([[3, 4]])
A. 정답 코드 (접기/펼치기)
result = np.concatenate((A, B), axis=0)
print(result)
Q24
두 배열을 새로운 축으로 stack 하세요.
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])
A. 정답 코드 (접기/펼치기)
result = np.stack((A, B))
print(result)
Q25
가로 방향으로 결합하세요.
A = np.array([[1], [2]])
B = np.array([[3], [4]])
A. 정답 코드 (접기/펼치기)
print(np.hstack((A, B)))
Q26
세로 방향으로 결합하세요.
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])
A. 정답 코드 (접기/펼치기)
print(np.vstack((A, B)))
Q27
크기가 1인 차원을 제거하세요.
A = np.array([[[1, 2, 3]]])
A. 정답 코드 (접기/펼치기)
print(np.squeeze(A))
Q28
0보다 크면 1, 아니면 0으로 변환하세요.
A = np.array([-2, -1, 0, 1, 2])
A. 정답 코드 (접기/펼치기)
result = np.where(A > 0, 1, 0)
print(result)
넘파이 문법 정리 표
| 배열 생성 | np.array() | np.array([1,2,3]) |
| 1로 초기화 | np.ones(shape) | np.ones((2,3)) |
| 0으로 초기화 | np.zeros(shape) | np.zeros((2,3)) |
| 단위행렬 | np.eye(n) | np.eye(3) |
| 난수(정규) | np.random.randn(n) | np.random.randn(3) |
| 사칙연산 | + - * / | a + b, a * b |
| 행렬곱 | np.dot(a,b) | np.dot(A, B) |
| 형태 확인 | arr.shape | A.shape |
| 형태 변경 | arr.reshape() | A.reshape(2,3) |
| 연속 수 | np.arange() | np.arange(0,10,2) |
| 균등 분할 | np.linspace() | np.linspace(0,1,5) |
| 인덱싱 | arr[i] | A[0] |
| 슬라이싱 | arr[i:j] | A[1:4] |
| 불린 인덱싱 | arr[cond] | A[A>0] |
| 난수(균등) | np.random.rand() | np.random.rand(2,3) |
| 난수(정규) | np.random.randn() | np.random.randn(2,3) |
| 난수(정수) | np.random.randint() | np.random.randint(1,10,(2,3)) |
| 랜덤 선택 | np.random.choice() | np.random.choice(a,3) |
| 전치 | arr.T | A.T |
| 최대값 | np.max() | np.max(A) |
| 최대 인덱스 | np.argmax() | np.argmax(A) |
| 브로드캐스팅 | arr + scalar | A + 10 |
| 배열 연결 | np.concatenate() | np.concatenate((A,B),axis=0) |
| stack | np.stack() | np.stack((A,B)) |
| 가로 결합 | np.hstack() | np.hstack((A,B)) |
| 세로 결합 | np.vstack() | np.vstack((A,B)) |
| 차원 제거 | np.squeeze() | np.squeeze(A) |
| 조건 분기 | np.where() | np.where(A>0,1,0) |
강사님 자료 잘 공부하면 좋을듯
반응형
'부트캠프 > LG U+ Why not SW Camp 6기' 카테고리의 다른 글
| [LG U+ why not SW camp 6기] Python 데이터분석1 - Streamlit으로 대시보드 만들기 (1) | 2026.02.01 |
|---|---|
| [LG U+ why not SW camp 6기] Python 데이터분석1-Pandas (0) | 2026.01.30 |
| [LG U+ why not SW camp 6기] Python 프로그래밍 기초 (0) | 2026.01.30 |
| [LG U+ why not SW camp 6기] 머신 러닝 & 딥러닝 개요 (0) | 2026.01.29 |
| { 유쾌한 R 통계학 } Ch15. 비모수적 검정 후반부 (4) | 2025.06.18 |
