반응형

Python/Numpy 14

Numpy - 차원 추가 expand_dims 사용법

Numpy 배열의 차원을 추가하는 expand_dims 사용법을 파악해보려고 테스트해본 내용입니다. 파이썬 인터프리터에서 진행했기 때문에 차례대로 코드를 실행해 봐야 합니다. 2021. 9. 15 - 최초작성 테스트에 사용할 1차원 넘파이 배열 x를 생성합니다. 넘파이 배열의 원소가 2개 이기 때문에 넘파이 배열의 shape는 (2, ) 입니다. >>> import numpy as np >>> x = np.array([3, 4]) >>> x array([3, 4]) >>> x.shape (2,) 참고로 넘파이 배열의 shape 출력 결과에서 다음 순서대로 축의 순서가 정해집니다. (첫번째 축, 두번째 축, 세번째 축, … ) 참고로 이 부분을 시각화하여 설명한 내용은 제가 쓴 책인 “파이썬과 NumPy로..

Python/Numpy 2024.03.12

Numpy - 넘파이 배열을 파일로 저장하고 로드하는 예제

넘파이 배열을 파일로 저장했다가 다시 로드하는 예제 코드입니다. 2023. 11. 3 - 최초작성 import numpy as np # 넘파이 배열 생성 array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print('원본 넘파이 배열') print(array) print() # 넘파이 배열을 저장합니다 np.save('array_data.npy', array) # 넘파이 배열을 로드합니다. loaded_array = np.load('array_data.npy') print('파일에서 로드한 넘파이 배열') print(loaded_array) 실행 결과

Python/Numpy 2023.11.03

두 개의 넘파이 배열을 같은 순서로 정렬하기

넘파이의 argsort 함수를 사용하여 첫 번째 배열을 오름순으로 정렬하는 인덱스를 얻은 다음, 두 번째 배열에 이 인덱스를 적용하여 첫 번째 배열과 동일한 순서로 정렬합니다. 2023. 6. 27 최초작성 import numpy as np array1 = np.array([2, 1, 4, 3, 5]) array2 = np.array(['b', 'a', 'd', 'c', 'e']) # 첫번째 배열을 정렬하는 인덱스를 얻습니다. sort_indices = np.argsort(array1) # 인덱스를 사용하여 두 배열을 같은 순서로 정렬합니다. array1_sorted = array1[sort_indices] array2_sorted = array2[sort_indices] print(array1) pri..

Python/Numpy 2023.10.21

Numpy Array 이미지를 하나의 Numpy Array로 합쳤다가 분리하기

넘파이 배열 이미지를 하나의 넘파이 배열로 합쳤다가 다시 분리하는 예제 코드입니다. 2022. 12.8 최초작성 넘파이 모듈을 로드합니다. >>> import numpy as np 3개의 넘파이 배열을 생성합니다. >>> a = np.empty((488,488,3), dtype=np.uint8) >>> b = np.empty((488,488,3), dtype=np.uint8) >>> c = np.empty((488,488,3), dtype=np.uint8) 첫번째 차원을 추가하여 4차원 넘파이 배열로 변환합니다. >>> a = np.expand_dims(a, axis=0) >>> b = np.expand_dims(b, axis=0) >>> c = np.expand_dims(c, axis=0) 넘파이 배열..

Python/Numpy 2022.12.08

Python Numpy 배열 크기 확인 getsizeof , nbytes

sys.getdizeof 메소드와 NumPy배열의 nbytes 속성을 사용하여 Numpy 배열의 크기를 확인해봤습니다. 2022. 01. 22 최초작성 동적으로 크기를 늘릴 수 있는 Python의 리스트와 달리 NumPy 배열을 생성하면 고정된 크기를 갖습니다. 또한 여러가지 데이터 타입의 원소를 가질 수 있는 Python의 리스트와 달리 NumPy 배열의 모든 원소는 동일한 데이터 타입이어야 합니다. 따라서 메모리 상에 저장된 NumPy 배열의 원소들의 크기는 모두 동일합니다. NumPy 배열에 여러가지 데이터 타입의 값을 넣어보면 에러가 나지 않지만 NumPy 배열의 데이터 타입을 확인해보면 원소들을 모두 포함할 수 있는 데이터 타입으로 되어 있는 것을 볼 수 있습니다. >>> a = np.array..

Python/Numpy 2022.01.22

Python 예제 - Numpy 배열에 열 추가하기

Numpy 배열에 열을 추가하는 Python 예제코드입니다. 2021. 12. 1 - 최초작성 import numpy as np array = np.array([[1,2], [3,4], [5,6]]) print(array) # 3 x 2 배열입니다. # [[1 2] # [3 4] # [5 6]] print() # 기존 배열에 3 x 1 배열을 결합합니다. array2 = np.append(array, [[1],[1],[1]], axis = 1) print(array2) # 3 x 3 배열이 되었습니다. # [[1 2 1] # [3 4 1] # [5 6 1]] 원본 코드 - https://www.delftstack.com/ko/howto/numpy/numpy-add-column/

Python/Numpy 2021.12.01

Python 예제 - Numpy 배열에서 0이 아닌 최소값 찾기

Numpy 배열에서 0이 아닌 최소값을 찾는 예제입니다. 2021. 12. 1 최초작성 # -*- coding: utf-8 -*- import numpy as np import numpy.ma as ma a = np.array([-1, 0, 1, 2, 3, 4, 5]) print(a) min_value = np.min(ma.masked_where(a == 0, a)) print( "0이 아닌 최소값 :", min_value ) # the position/index of non-zero minimum value in the array min_value_idx = np.argmin(ma.masked_where(a == 0, a)) print( "0이 아닌 최소값의 인덱스 : ", min_value_idx )..

Python/Numpy 2021.12.01

Python List의 append와 Numpy 배열의 append 비교

Python에서 List에 원소를 추가하는데 걸리는 시간과 Numpy에서 넘파이 배열에 원소를 추가하는데 걸리는 시간을 비교해봤습니다. 예상과 달리 넘파이 배열에 원소를 추가하는 시간이 더 오래 걸립니다. 2021. 11. 29 - 최초작성 Python List에 원소를 추가한 후, 넘파이 배열로 변환하는 방법과 빈 넘파이 배열에 원소를 추가하는 방법 두가지에 대한 코드와 결과입니다. Python의 List에 원소 추가 import numpy as np import time start = time.time() arr = [] for i in range(1000000): arr.append(i) arr = np.array(arr) print(arr.shape) print("list append time :..

Python/Numpy 2021.11.29

NumPy 전체 배열 출력

NumPy 배열이 일정 크기 이상이 되면 print를 사용하여 출력시 다음처럼 생략이 됩니다. [[ 0] [ 1] [ 2] ... [9997] [9998] [9999]] 사용한 코드입니다. import numpy as np a = np.arange(10000) b = np.expand_dims(a, axis=1) print(b) 2021. 10. 4 - 최초작성 배열 출력시 옵션을 변경을 위해 다음 코드를 추가하면 전체 배열을 모두 출력할 수 있습니다. import sys np.set_printoptions(threshold=sys.maxsize) import numpy as np import sys np.set_printoptions(threshold=sys.maxsize) a = np.arange(1..

Python/Numpy 2021.10.04

NumPy reshape에 -1을 사용하는 이유

NumPy reshape에 -1을 사용하는 이유는 shape에서 -1로 지정한 차원은 알아서 계산되게 하기 위해서입니다. 2021. 10. 4. 최초작성 >>> import numpy as np 크기 6인 1차원 배열을 생성합니다. >>> a = np.array([1, 2, 3, 4, 5, 6]) >>> a array([1, 2, 3, 4, 5, 6]) >>> a.shape (6,) 두번째 차원을 2로 지정하고 첫번째 차원은 알아서 지정되도록 -1로 합니다. 첫번째 차원이 자동으로 3으로 지정됩니다. 전체 원소 개수가 6개인데 두번째 차원을 2로 고정하면 첫번쨰 차원은 3이 되어야 하기 때문입니다. 6 = 2 x 3 >>> b = a.reshape(-1,2) >>> b array([[1, 2], [3, ..

Python/Numpy 2021.10.04
반응형