[문제-1] 길이가 10인 0벡터를 만드세요.
import numpy as np
a = np.zeros(10, dtype=int)
print(a)
[0 0 0 0 0 0 0 0 0 0]
[문제-2] 길이가 10이며 다섯번째 원소만 1이고 나머지 원소는 모두 0인 벡터를 만드세요.
b = np.zeros(10, dtype=int)
b[4] = 1
print(b)
[0 0 0 0 1 0 0 0 0 0]
[문제-3] 10 부터 49까지의 값을 가지는 벡터를 만드세요.
c = np.arange(10, 50)
print(c)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
[문제-4] 위 벡터의 순서를 바꾸세요.
print(c[::-1])
print(np.flip(c))
r = np.arange(49, 9, -1)
print(r)
[49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26
25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10]
[문제-5] 0부터 8까지의 값을 가지는 3x3 행렬을 만드세요.
d = np.arange(0, 9).reshape(3,3)
print(d)
[[0 1 2]
[3 4 5]
[6 7 8]]
[문제-6] 벡터 [1,2,0,0,4,0] 에서 원소의 값이 0이 아닌 원소만 선택한 벡터를 만드세요.
e = np.array([1,2,0,0,4,0])
x = e != 0
print(e[x])
[1 2 4]
[문제-7] 3x3 단위 행렬(identity matrix)을 만드세요
print(np.identity(3, dtype=int))
print(np.eye(3, dtype=int))
[[1 0 0]
[0 1 0]
[0 0 1]]
[문제-8] 난수 원소를 가지는 3x3 행렬을 만드세요
np.random.seed(10)
f = np.random.randint(0,100, (3,3))
print(f)
[[ 9 15 64]
[28 89 93]
[29 8 73]]
[문제-9] 위에서 만든 난수 행렬에서 최대값/최솟값 원소를 찾으세요.
print(np.amax(f)) # 93
print(np.amin(f)) # 8
[문제-10] 위에서 만든 난수 행렬에서 행 평균, 열 평균을 계산하세요.
# 각 행의 평균
print(f.mean(axis=1))
# 각 열의 옆균
print(f.mean(axis=0))
[29.33333333 70. 36.66666667]
[22. 37.33333333 76.66666667]
[문제-11] 5x5짜리 정방행렬의 단위행렬을 생성하시오
print(np.identity(5, dtype=int))
[[1 0 0 0 0]
[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 0 0 0 1]]
[문제-12] 10~50까지 값 9개를 정수로 발생시켜 출력
np.random.seed(50)
g = np.random.randint(10, 51, size=9)
print(g)
[42 21 43 40 14 16 47 16 32]
[문제-13] '문제-12' 배열의 shape을 3x3으로 변환
print(g.reshape(3, 3))
[[42 21 43]
[40 14 16]
[47 16 32]]
[문제-14] '문제-13' 배열의 각 행끼리의 합을 구하여 출력
print(g.sum(axis=1))
[106 70 95]
[문제-15] '문제-13' 배열의 각 열 중 최대값 구하여 출력
print(np.amax(g, axis=0))
[47 21 43]
[문제-16] '문제-13' 배열의 전체 요소의 평균을 구하여 출력
print(np.mean(g))
30.11111111111111
[문제-17] 1~10 사이의 정수를 요소로 하는 2x3 배열 생성
h = np.random.randint(1, 11, (2,3))
print(h)
[[6 3 8]
[5 4 7]]
[문제-18] 10~20 사이의 정수를 요소로 하는 3x2 배열 생성
i = np.random.randint(10, 21, (3,2))
print(i)
[[14 11]
[15 20]
[19 10]]
[문제-19] '문제-17'과 '문제-18'의 두 배열의 행렬 곱을 구하여 출력
j = h.dot(i)
print(j)
[[281 206]
[263 205]]
[문제-20] '문제-19' 배열의 전치 행렬을 구하여 출력
print(np.transpose(j))
[[281 263]
[206 205]]
[문제-21] 로또 번호 생성하기 (1~46 사이의 중복되지 않은 정수 6개 추출)
k = np.random.choice(np.arange(1, 47), 6, replace=False)
print(k)
[32 9 17 40 43 7]
'데이터 분석 > 넘파이' 카테고리의 다른 글
[Numpy] 데이터 분석 실습 문제 (0) | 2023.11.09 |
---|---|
[Numpy] random 모듈 (0) | 2023.11.08 |
[Numpy] Broadcasting (0) | 2023.11.08 |
[Numpy] 인덱싱 / 슬라이싱 / 반복 (1) | 2023.11.08 |
[Numpy] 배열 연산 (0) | 2023.11.08 |