np.kron를 사용하여 NumPy 배열을 확대하는 예제코드입니다. 2024. 5. 16 최초작성np.kron을 사용하여 NumPy 배열을 확대하는 예제코드입니다.OpenCV의 resize 함수에서 사용가능한 NumPy 배열의 데이터 타입이 몇가지 있긴 하지만 값의 범위가 제한되어 있기 때문에 np.kron을 사용했습니다. import numpy as np# 2 x 2 배열을 생성합니다.a = np.arange(4).reshape(2,2)print("배열 a:")print(a)print()# np.kron을 사용하여 배열을 가로 2배, 세로 2배 확대합니다. b = np.kron(a, np.ones((2, 2)))print("확대한 배열 b:")print(b)print()# 확대된 배열 b를 원래 크..
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로..
넘파이 배열을 파일로 저장했다가 다시 로드하는 예제 코드입니다. 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) 실행 결과
넘파이의 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..
넘파이 배열 이미지를 하나의 넘파이 배열로 합쳤다가 다시 분리하는 예제 코드입니다. 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) 넘파이 배열..
sys.getdizeof 메소드와 NumPy배열의 nbytes 속성을 사용하여 Numpy 배열의 크기를 확인해봤습니다. 2022. 01. 22 최초작성 동적으로 크기를 늘릴 수 있는 Python의 리스트와 달리 NumPy 배열을 생성하면 고정된 크기를 갖습니다. 또한 여러가지 데이터 타입의 원소를 가질 수 있는 Python의 리스트와 달리 NumPy 배열의 모든 원소는 동일한 데이터 타입이어야 합니다. 따라서 메모리 상에 저장된 NumPy 배열의 원소들의 크기는 모두 동일합니다. NumPy 배열에 여러가지 데이터 타입의 값을 넣어보면 에러가 나지 않지만 NumPy 배열의 데이터 타입을 확인해보면 원소들을 모두 포함할 수 있는 데이터 타입으로 되어 있는 것을 볼 수 있습니다. >>> a = np.array..
range를 이용하여 2의 배수 저장된 리스트를 생성하여 넘파이 배열의 인덱스로 사용하는 예제입니다. 2021. 12. 6 - 최초작성 import numpy as np a = np.arange(10) print(a) idx = list(range(1,10,2)) print(a[idx]) 실행 결과 원본 넘파이 배열에서 짝수 인덱스 위치에 있는 원소만 가져와 새로운 넘파이 배열을 생성합니다. [0 1 2 3 4 5 6 7 8 9] [1 3 5 7 9]
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/
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 )..
1차원 곡선의 최소값과 최대값 위치를 찾아주는 예제입니다. scipy에서 제공하는 argrelmin, argrelmax를 사용하여 구현했는데 정확한 위치를 잡아주지는 않습니다. 실행 속도도 빠른 편이 아니네요. 2021. 12. 1 최초작성 import numpy as np from scipy.signal import argrelmin, argrelmax from matplotlib import pyplot as plt x = np.linspace(0, 20, 20) y = np.cos(x) local_min_xx = argrelmin(y)[0] local_min_yy = np.array(y[local_min_xx]) local_max_xx = argrelmax(y)[0] local_max_yy = np..