이론 1번 문제

1. NumPy 배열은 항상 고정된 타입의 요소들을 가집니다. (O)
2. np.arange(10) 함수는 0부터 9까지의 정수를 포함하는 배열을 생성합니다. (O)
3. NumPy에서 shape 속성은 배열의 크기와 차원을 변경할 수 있습니다. (X)
4. np.zeros((2, 3))는 2x3 크기의 배열을 생성하고 모든 요소를 1로 초기화합니다. (X)
5. np.matmul과 np.dot은 모든 상황에서 동일한 결과를 반환합니다. (X)
6. NumPy 배열에 대한 산술 연산은 요소별로 수행됩니다. (O)
7. NumPy의 브로드캐스팅 기능은 서로 다른 크기의 배열 간에도 산술 연산을 가능하게 합니다. (X)
8. NumPy 배열의 인덱싱에는 정수, 슬라이스, 그리고 불리언 배열을 사용할 수 있습니다. (O)
 

이론 2번 문제

1. l = np.arange(25) 에서 print(l[l % 5 == 0]) 로 5의 배수만 출력할 수 있다. (O)
2. l = np.arange(16).reshape(4, 4) 에서 print(l[[1, 2], [3, 0]]) 의 출력 결과로 알맞은 것은? (B)
	A. [[1 2]
			[7 4]]
	B. [7 8]
	C. [[0 1 2 3]
			[4 5 6 7]]

3. np.reshape() 와 np.resize() 의 차이를 설명하세요.
np.reshape()은 기존의 배열과의 크기가 동일하지 않으면 오류 발생, 배열 구조변경/데이터 수 유지
np.resize()는 기존 배열보다 크기가 작으면 데이터를 기존 배열의 데이터를 잘라서 가져온다. 기존 배열보다 클 경우 기존배열의 데이터를 반복해서 채운다.
              /배열의 크기 조절
4. 다음 중 Numpy 배열을 생성하는 올바른 방법을 고르세요. (B)
	A. np.array(1,2,3,4)
	B. np.array([1,2,3,4])
	C. np.array[1,2,3,4]
	D. np.array([1,2,3,4]).tolist()

5. l = np.arange(16) 에서 오류가 발생하는 코드를 모두 고르세요. (C,D,E)
	A. l.resize(4, 4)
	B. l.resize((4, 4))
	C. l.resize(2, -1)
	D. l.resize(3, 6)
	E. l = l.reshape(3, 6)