이론 1번 문제 <7점>
1. NumPy 배열은 항상 고정된 타입의 요소들을 가집니다. (O)
2. np.arange(10) 함수는 0부터 9까지의 정수를 포함하는 배열을 생성합니다. (O)
3. NumPy에서 shape 속성은 배열의 크기와 차원을 변경할 수 있습니다. (O)
X: shape 속성은 배열의 형태(크기와 차원)를 나타내지만, 그 값을 직접 변경하여 배열의 형태를 바꿀 수는 없다. 형태를 변경하기 위해서는 reshape 메서드를 사용해야 한다.
4. np.zeros((2, 3))는 2x3 크기의 배열을 생성하고 모든 요소를 1로 초기화합니다. (X)
5. np.matmul과 np.dot은 모든 상황에서 동일한 결과를 반환합니다. (X)
6. NumPy 배열에 대한 산술 연산은 요소별로 수행됩니다. (O)
7. NumPy의 브로드캐스팅 기능은 서로 다른 크기의 배열 간에도 산술 연산을 가능하게 합니다. (X)
O: 브로드캐스팅은 NumPy의 강력한 기능 중 하나로, 특정 조건을 만족하는 경우 서로 다른 크기의 배열 간 산술 연산을 가능하게한다.
8. NumPy 배열의 인덱싱에는 정수, 슬라이스, 그리고 불리언 배열을 사용할 수 있습니다. (O)
이론 2번 문제 <6점>
1. l = np.arange(25) 에서 print(l[l % 5 == 0]) 로 5의 배수만 출력할 수 있다. (O) **1점**
2. l = np.arange(16).reshape(4, 4) 에서 print(l[[1, 2], [3, 0]]) 의 출력 결과로 알맞은 것은? **2점**(B)
A. [[1 2]
[7 4]]
B. [7 8]
C. [[0 1 2 3]
[4 5 6 7]]
3. np.reshape() 와 np.resize() 의 차이를 설명하세요. **2점**
np.reshape()은 원소의 개수가 다르면 오류남.
np.resize()는 오류나지 않고 자동으로 맞춰줌.
4. 다음 중 Numpy 배열을 생성하는 올바른 방법을 고르세요. (B) **1점**
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, E) 4점
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)
C. -1이 포함된 크기는 사용할 수 없음
D. 원래 배열보다 작은 경우 배열의 크기 변경 불가
E. 16개의 원소를 3x6 모양으로 변경 불가