예시1
import numpy as np
a1 = np.array([[1, 2, 3], [10, 20, 30]])
print(a1)
print(a1.ndim)
print(a1.shape)
print(a1.size)
결과
[[ 1 2 3]
[10 20 30]]
2
(2, 3)
6
예시2
a2 = np.arange(20).reshape(4, 5) # 기본 1차원 배열을(n, )다차원 배열로(m, l)로 변경
print(a2)
print(a2.shape)
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
(4, 5)
예시3
a3 = a2.flatten()
a3[3] = 100
print(a3)
print(a2)
a4 = a2.ravel()
a4[3] = 200
print(a4)
print(a2)
결과
[ 0 1 2 100 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19]
[[ 0 1 2 200 4]
[ 5 6 7 8 9]
[ 10 11 12 13 14]
[ 15 16 17 18 19]]
[ 0 1 2 200 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19]
[[ 0 1 2 200 4]
[ 5 6 7 8 9]
[ 10 11 12 13 14]
[ 15 16 17 18 19]]
예시4
a2 = np.arange(20).reshape(4, 5)
print(a2)
#print(a2[1])
#print(a2[1, 2])
#print(a2[:, 1])
#print(a2[:, 1:4])
#print(a2[:, 1:4:2])
print(a2[1:3, :])
print(a2[::2, 1:4])
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
[[ 5 6 7 8 9]
[10 11 12 13 14]]
[[ 1 2 3]
[11 12 13]]
예시5
print(a2)
print(a2.shape)
print(a2.sum())
print(a2.sum(axis = 0)) # 0 : 열별로 1 : 행별로
print(a2.sum(axis = 1))
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
(4, 5)
190
[30 34 38 42 46]
[10 35 60 85]
예시6
print(a2, a2.shape)
a3 = a2.T
print(a3, a3.shape)
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]] (4, 5)
[[ 0 5 10 15]
[ 1 6 11 16]
[ 2 7 12 17]
[ 3 8 13 18]
[ 4 9 14 19]] (5, 4)
예시7
print(a2, a2.shape)
a3 = np.moveaxis(a2, [0], [1])
print(a3, a3.shape)
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]] (4, 5)
[[ 0 5 10 15]
[ 1 6 11 16]
[ 2 7 12 17]
[ 3 8 13 18]
[ 4 9 14 19]] (5, 4)
예시8
# shape (3, 5) 의 2차원 ndarray로 만들기
a10 = np.arange(5, 20).reshape(3, 5)
print(a10, a10.shape)
a11 = a10[:, 2:4]
print(a11, a11.shape)
print(a11.sum(axis = 0))
print(np.mean(a11, axis = 0))
결과
[[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]] (3, 5)
[[ 7 8]
[12 13]
[17 18]] (3, 2)
[36 39]
[12. 13.]
예시9
a1 = np.arange(0, 10).reshape(2, 5)
a2 = np.arange(100, 110).reshape(2, 5)
print(a1)
print(a2)
a3 = np.concatenate((a1, a2), axis = 1)
print(a3)
a4 = np.hstack((a1, a2))
print(a4)
a5 = np.vstack((a1, a2))
print(a5)
결과
[[0 1 2 3 4]
[5 6 7 8 9]]
[[100 101 102 103 104]
[105 106 107 108 109]]
[[ 0 1 2 3 4 100 101 102 103 104]
[ 5 6 7 8 9 105 106 107 108 109]]
[[ 0 1 2 3 4 100 101 102 103 104]
[ 5 6 7 8 9 105 106 107 108 109]]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[100 101 102 103 104]
[105 106 107 108 109]]
예시10
print(a4)
a6 = np.hsplit(a4, 5)
print(a6)
결과
[[ 0 1 2 3 4 100 101 102 103 104]
[ 5 6 7 8 9 105 106 107 108 109]]
[array([[0, 1],
[5, 6]]), array([[2, 3],
[7, 8]]), array([[ 4, 100],
[ 9, 105]]), array([[101, 102],
[106, 107]]), array([[103, 104],
[108, 109]])]
예시11
a7 = a4.T
print(a7)
np.vsplit(a7, 5)
결과
[[ 0 5]
[ 1 6]
[ 2 7]
[ 3 8]
[ 4 9]
[100 105]
[101 106]
[102 107]
[103 108]
[104 109]]
Out[74]:
[array([[0, 5],
[1, 6]]),
array([[2, 7],
[3, 8]]),
array([[ 4, 9],
[100, 105]]),
array([[101, 106],
[102, 107]]),
array([[103, 108],
[104, 109]])]
예시12
a2 = np.arange(20).reshape(4, 5)
print(a2)
filter1 = (a2[:, 0] % 10 == 5) # 필터
print(a2[filter1])
결과
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
[[ 5 6 7 8 9]
[15 16 17 18 19]]
'백엔드개발자 준비하기 - 파이썬' 카테고리의 다른 글
[파이썬] numpy ndarrary2d(2차원) (0) | 2023.02.22 |
---|---|
[파이썬] numpy ndarray (0) | 2023.02.13 |
[파이썬] numpy (0) | 2023.02.13 |
[파이썬] random (0) | 2023.02.13 |
[파이썬] requests (0) | 2023.02.13 |