#Q1. 다음 Numpy의 특징에 대해 틀린 것을 고르시오[2.5점]
1. 반복문 없이 데이터 배열에 대한 처리를 지원함
2. C, JAVA, 포트란 등의 언어와 통합 가능
3. 일반 List에 비해 빠르고, 메모리 효율적
4. Windows 환경에선 패키지 추가 설치 필요 없음

답) 4
-------------------------------------------------------------------------------
#Q2. 다음 문제를 해결하고 틀린 부분은 고치시오[2.5점]
import numpy as np
ts = [[[1,2,3],[4,5,6],[7,8,9]]]
np.array(ts,int).shape를 입력하면
(3,3,3)이 출력된다.

답) (1,3,3)이 출력된다.
-------------------------------------------------------------------------------
#Q3. 다음 문제의 출력 결과를 작성하시오[2.5점]
import numpy as np
ts = [[[1,2,3],[4,5,6],[7,8,9]]]
tn = np.array(ts,int)
tn[:,:,1]

답) array([[2],[5],[8]])
-------------------------------------------------------------------------------
#Q4. 각 문제의 O/X 여부를 결정하고 X인 부분은 고치시오[2.5점]
1. 다차원 array를 1차원으로 변환하기 위해서 reshape을 사용할 수 있다.
2. Matrix의 경우 앞은 열, 뒤는 행을 의미한다.

답) 1. O    2. X (앞은 행, 뒤는 열)
-------------------------------------------------------------------------------
#Q5. 다음 코드에서 print(a[::2,::3])의 결과는 무엇인지 작성하시오[2.5점]
import numpy as np
# shape: (3, 4)
a = np.array([[1,2,3,4],
							[5,6,7,8],
							[9,10,11,12]], dtype=np.int32)

답) [[ 1  4]
    [ 9 12]]
-------------------------------------------------------------------------------
#Q6. 아래 코드의 출력으로 알맞은 것은?[2.5점]
import numpy as np
import copy

# a = Q5의 정의와 동일
b = a
b[0][0] = 5
print(a)
print(b)

b = copy.deepcopy(a)
b[0][0] = 50
print(a)
print(b)

# === 선지 ===
	1. [ 1,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 1,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 50,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12]]

	2. [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 50,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 50,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12]]

	3. [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 5,  2,  3,  4],  [ 5,  6,  7,  8], [ 9, 10, 11, 12]]
	   [ 50,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12]]

답) 3
-------------------------------------------------------------------------------
#Q7. 다음 코드에서 print(a)의 결과는?[2.5점]
import numpy as np
a = np.arange(0, 15, 2).reshape(-1, 4)

답) [[ 0  2  4  6]
 [ 8 10 12 14]]
-------------------------------------------------------------------------------
#Q8. O, X 문제 (X라면 올바르게 고치시오)[2.5점]
a = np.array([4, 9, 10, 3, 1]) 일 떄
np.where(a > 5, 0, 1)의 값은 
array([9, 10])으로 출력 된다.

답) X ( [1, 0, 0, 1, 1] )
-------------------------------------------------------------------------------
#Q9. O, X 문제 (X라면 올바르게 고치시오)[2.5점] 
b = np.array([[5, 49, 11, 1432, 35], [0, 3, 389, 10, 67], [6, 21, 3, 7, 99]]) 일 떄
np.argmax(b, axis = 1)
np.argmin(b, axis = 0)의 출력 값은
array([2, 0, 1, 0, 2])
array([0, 0, 2])이다.

답) X
np.argmax(b, axis=1) -> [3, 2, 4]
np.argmin(b, axis=0) -> [0, 0, 2, 0, 2]
-------------------------------------------------------------------------------
#Q10. O, X 문제 (X라면 올바르게 고치시오)[2.5점]
x = np.array([[0, 14, 2],[5, 2, 1], [53, 21, 21]], float)
y = np.array([0, 2 ,1, 2, 2], int)
z = np.array([1, 2, 0, 2, 0], int) 일 때
x[y,z]의 값은
array([14., 21., 5., 21., 53.])이다.

답) O