#이론 문제 
1. python 리스트는 다양한 데이터 유형을 포함할 수 있지만, 
numpy 배열의 모든 요소는 동일 유형이어야 한다. ()

2. numpy는 C언어와 통합이 불가능하다. (X)

-numpy는 C언어와 통합이 가능

3. np.linspace(1, 11, 10)의 결과는 array([1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) 이다. (O)

4. numpy의 경우 파이썬과 다르게 배열을 생성하고 a = [1,2,3,4]를 넣으면 배열에
  1,2,3,4 각각의 주소가 저장된다. (X)

5. 
a = np.array([
    [1, 2, 3, 4, 5],
    [11, 12, 13, 14, 15],
    [21, 22, 23, 24, 25]])

print(a[::2, ::2])
의 결과값은 
[[ 1 3 5]
[21 23 25]] 이다. (O)

6. numpy에서 array를 합칠 경우 vstack은 행을 붙이고, hstack은 열을 붙인다. (O)

7. 
arr1 = np.arrange(15).reshape(1, 2, 5)
arr2 = np.arrange(20).reshape(3, 5)
위의 두 배열은 broadcasting이 가능하다. (O)

8. numpy에서는 1차원 이상의 배열부터 행렬이라고 하며, 행렬을 활용한 연산이 가능하다. (O)

9. arr[-3]처럼, 인덱스에 -n이 붙으면 뒤에서 n번째를 표현하는 것이다. (O)

10. np.linspace(1,10)에서 나오는 벡터의 간격은 np.linspace(11,20,50)의 벡터의 간격과 동일하다. (X)

정답 :

  1. O
  2. X
  3. O
  4. X
  5. O
  6. O
  7. O
  8. O
  9. O
  10. X
1, 2.
아래의 해설에서 틀린 부분을 찾아 고치시오.

import numpy as np
n_arr = np.array(range(5))

1. 위 코드를 통해 생성된 n_arr의 클래스 타입은 numpy이다. (numpy -> numpy.ndarray)

2. 리스트와 다르게 중괄호를 사용한다. (중괄호 -> 대괄호)

3. numpy.shape을 반환하면 튜플 타입으로 반환된다. (O)

4. numpy는 list와 같이 여러 개의 데이터 type을 사용하여 배열을 만들 수 있다.(X)

5. numpy는 데이터가 C array 형태로 저장되기 때문에 상당히 빠른 속도를 보장한다.(O)

6. 시드값만 같으면 동일한 난수를 생성할 수 있다.(O)

7. arr1 = np.array([1,2.3,3,'32']) print(arr1, arr1.dtype)
다음 코드에서 출력된 데이터의 타입은 Unicode이다. (O)

8. 벡터 연산을 통해 구한 값은 기존의 형태로 반환된다. (O)

  import numpy as np 

  arr1 = np.array([[1,2,3],
				           [4,5,6],
				           [7,8,9]])
  arr2 = np.array([[1,1,1],
			             [1,1,1],
			             [1,1,1]])

  print(np.add(arr1,arr2))
>>> [[ 2  3  4]
    [ 5  6  7]
    [ 8 9 10]]

9. numpy에서 연산을 할 때는 크기가 서로 다른 array끼리 연산이 가능하다. (O)

10. numpy array의 평균값을 구하려면 avg 메소드를 사용하면 된다(X)

정답 :

  1. O
  2. X
  3. O
  4. O