

ndarray가 있을 때 갯수에 관계 없이 전체를 다 더하고 싶을 때 sum을 사용한다


shape = (z, y, x) = index(0,1,2)
y = ↓ x = → z = ↘ ( 3차원 정육면체 격자 기준 상상 )

축에 방향에 따라 계산이 가능하다

내장함수는 축에 방향으로 계산이 가능하다

다양한 내장수학 함수들이 있다

sqrt : 루트 구하는 것
square : 제곱 구하는 것
수학 함수를 쓰고 해당 데이터를 넣어서 계산
각각의 함수들에 적용되는 모양

vstack 벽돌 쌓는 것처럼 아래위로 쌓는 것
쌓고자 하는 ndarray를 쌓아서 ndarrary를 만드는 것
x축 방향으로 벽돌의 모양이 맞아야 쌓을 수 있다
x축 방향으로 벽돌 모양이 일치 하지 않으면 못 쌓는다

hstack 벽돌 쌓는 것처럼 옆으로 쌓는 것
y축 방향으로 벽돌의 모양이 맞아야 쌓을 수 있다
y축 방향으로 벽돌 모양이 일치 하지 않으면 못 쌓는다

3차원을 2개를 붙이는 데 (0, 2, 3) axis = 0번(z)의 앞에 패킹을 한 것(겹쳐짐)
axis = 1번(y) 세로방향에 같아 붙인 것
axis = 2번(x) 가로방향에 같아 붙인 것
data = np.arange(1,21).reshape((4,5)) result = data.sum(dtype=float) print(data) print(result)출력 : [[ 1 2 3 4 5] [ 6 7 8 9 10] [11 12 13 14 15] [16 17 18 19 20]] 출력 : 210.0data = np.arange(24).reshape((3,2,4)) print(data) print(data.shape)출력 : [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]] [[16 17 18 19] [20 21 22 23]]] 출력 : (3, 2, 4)result1 = data.sum(axis=0) print(result1) print(result1.shape)출력 : [[24 27 30 33] [36 39 42 45]] 출력 : (2, 4)result2 = data.sum(axis=1) print(result2) print(result2.shape)출력 : [[ 4 6 8 10] [20 22 24 26] [36 38 40 42]] 출력 : (3, 4)result3 = data.sum(axis=2) print(result3) print(result3.shape)출력 : [[ 6 22] [38 54] [70 86]] 출력 : (3, 2)data = np.arange(24).reshape((3,2,4)) print(data) print(data.shape)출력 : [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]] [[16 17 18 19] [20 21 22 23]]] 출력 : (3, 2, 4)result1 = data.max(axis=0) print(result1) print(result1.shape)출력 : [[16 17 18 19] [20 21 22 23]] 출력 : (2, 4)result2 = data.max(axis=1) print(result2) print(result2.shape)출력 : [[ 4 5 6 7] [12 13 14 15] [20 21 22 23]] 출력 : (3, 4)result3 = data.max(axis=2) print(result3) print(result3.shape)출력 : [[ 3 7] [11 15] [19 23]] 출력 : (3, 2)data = np.arange(15).reshape((3,5)) print(data)출력 : [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]result1 = data.mean(axis=1) print(result1)출력 : [ 2. 7. 12.]result2 = data.min(axis=0) print(result2)출력 : [0 1 2 3 4]data = np.arange(1,10, dtype=float).reshape((3,3)) print(data)출력 : [[1. 2. 3.] [4. 5. 6.] [7. 8. 9.]]result1 = np.sqrt(data) print(result1)출력 : [[1. 1.41421356 1.73205081] [2. 2.23606798 2.44948974] [2.64575131 2.82842712 3. ]]result2 = np.square(data) print(result2)출력 : [[ 1. 4. 9.] [16. 25. 36.] [49. 64. 81.]]result3 = np.sin(data) print(result3)출력 : [[ 0.84147098 0.90929743 0.14112001] [-0.7568025 -0.95892427 -0.2794155 ] [ 0.6569866 0.98935825 0.41211849]]data1 = np.array([[1,2,3],[4,5,6]]) data2 = np.array([[7,8,9],[10,11,12],[10,11,12]])print(data1) print(data2)출력 : [[1 2 3] [4 5 6]] 출력 : [[ 7 8 9] [10 11 12] [10 11 12]]result = np.vstack((data1, data2)) print(result)출력 : [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [10 11 12]]data1 = np.array([[1,2,3],[4,5,6]]) data2 = np.array([[7],[10]]) data3 = np.array([[8,9],[11,12]])print(data1) print(data2)출력 : [[1 2 3] [4 5 6]] 출력 : [[ 7] [10]]result = np.hstack((data1, data2, data3)) print(result)출력 : [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]data1 = np.array([[1,2,3],[4,5,6]]) data2 = np.array([[7,8,9],[10,11,12]]) result = np.concatenate((data1, data2), axis=0) print(result)출력 : [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]result = np.concatenate((data1, data2), axis=1) print(result)출력 : [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]data1 = np.array([[[1,2,3],[4,5,6]]]) data2 = np.array([[[7,8,9],[10,11,12]]]) print(data1) print(data1.shape) print(data2) print(data2.shape) print("-"*10)출력 : [[[1 2 3] [4 5 6]]] 출력 : (1, 2, 3) 출력 : [[[ 7 8 9] [10 11 12]]] 출력 : (1, 2, 3)result = np.concatenate((data1, data2), axis=0) print(result)출력 : [[[ 1 2 3] [ 4 5 6]] [[ 7 8 9] [10 11 12]]]result = np.concatenate((data1, data2), axis=1) print(result)출력 : [[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]]result = np.concatenate((data1, data2), axis=2) print(result) # print("-"*10) # result = np.hstack((data1, data2)) # print(result)출력 : [[[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]]