2025. 7. 9. 06:14ㆍpython/numpy
1. np. array : numpy를 이용해 array 형태로 바꿔준다. 사용법은 다음과 같다.
import numpy as np
arr1 = np.array([1,2,3])
2. np.zeros : numpy를 이용해 array를 만드는데 이때 값들을 0으로 초기화해 준다.
import numpy as np
arr1 = np.zeros((3,2),dtype='int32')
3. np.ones : numpy를 이용해 array를 만드는데 이때 값들을 1로 초기화해 준다.
import numpy as np
arr1 = np.ones((3,2),dtype='int32')
4. np.reshape : 기존의 array의 shape을 수정할 때 사용한다.
list라는 기존의 array가 있을 때 이 list의 shape을 수정하고 싶다. 이때 reshape method를 사용하고 값으로 (-1,2)를 입력했다. 여기서 -1이라는 것은 "나머지값을 나한테 할당해 줘"라고 해석하면 된다. 따라서, 4개의 element로 구성된 1차원 array에서 axis1을 두 개로 설정하고 나머지는 axis0으로 설정해 달라는 뜻이다. 계산하면, axis1 은 2개 axis0는 2개이다.(4/2) 따라서 shape를 계산하면 (2,2)가 나오게 된다.
이 method를 쓸 때는 결국 shape를 바꾸고 싶을 때일 것이다. 따라서, 3차원을 2차원으로 바꾸고 싶다면 인자 2개 , 2차원을 1차원으로 바꾸고 싶다면 인자 1개를 넣어주면 된다.
import numpy as np
list = np.array([1,2,3,4])
arr1 = list.reshape(-1,2)
import numpy as np
list = np.array([1,2,3,4])
arr1 = list.reshape(-1,2)
arr2 = arr1.reshape(-1,)
5. array.shape , array.ndim : 전자는 array의 shape를 반환한다. 후자는 array의 dimension을 반환한다.
6. array indexing : 특정 element를 뽑아낼 때 사용한다.
import numpy as np
arr1 = np.array([1,2,3,4,5])
arr1[3]
arr2 = np.array([[1,2,3],[4,5,6]])
arr2[1][1]
arr2[:,1:]
7. fancy indexing : 내가 원하는 값만 뽑아내고 싶을 때 사용한다. 이 방법의 장점은 연속적인 값들을 뽑지 않을 수 있다는 것이다.
# fancy indexing
arr1 = np.array([1,2,3,4,5,6,7,8])
arr1[[2,4,7]]
8. boolean indexing : True / False로 조건을 걸어 값을 추출하는 법이다.
# boolean indexing
arr1 = np.arange(start=0, stop=10)
arr1[arr1 > 5]
9. sort , argsort : sort는 단순히 값을 sorting 할 때 사용한다. 하지만 argsort는 값을 sorting 하고 난 후 index를 반환한다.
import numpy as np
arr1 = np.array([3,1,9,5])
arr2 = np.sort(arr1)
arr3 = np.sort(arr1)[::-1]
arr2.sort()
# argsort
arr2 = np.argsort(arr1)
names = np.array(['gh','hb', 'cy', 'bell'])
scores = np.array([90,94,64,93])
scores_argsort = np.argsort(scores)
names[scores_argsort]
위의 예제에서 볼 수 있듯이 argsort는 score를 sorting 한 후, 그 index값을 기반으로 names에 fancy indexing을 사용해 누가 누구인지 mapping 할 수 있다. 유용하다.
10. np.dot , np.transpose : 전자는 내적이다. 두 행렬을 numpy의 dot method를 이용해 내적 값을 구한다. 후자는 transpose method를 통해 전치행렬을 구할 때 이용한다.
# linear algebra ; dot
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.array([[7,8],[9,10],[11,12]])
dot_product = np.dot(arr1,arr2)
dot_product
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6]])
transpose_mat = np.transpose(arr1)
transpose_mat