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

Matplotlib를 사용하여 FFT를 그려보았습니다. 2021. 12. 18 최초작성 2021. 12. 31 예제 코드 추가 2021. 01. 17 예제 코드 추가 아직 정확히 개념이 잡힌 상태가 아니라서 틀린점이 있을 수 있으니 참고용으로만 사용하세요. 다음 두 개의 sin 그래프를 FFT로 변환하여 그려봅니다. 오른쪽의 진폭이 2배 더 큽니다. 왼쪽은 FFT로 변환한 결과이며 오른쪽은 FFT 결과를 역변환하여 얻은 원래 파형을 그린것입니다. 두 개의 sin 그래프의 FFT 결과에서 다른 점은 1Hz에서의 높이가 원래 파형의 배수만큼 다른 것입니다. 원래 그래프에서 2배 차이가 났었는데 FFT의 1Hz에서의 높이도 2배 차이입니다. 전체 소스코드입니다. # 참고 : https://pythonnumer..
하위 경로에 있는 특정 확장자 파일의 목록을 리스트로 받아오는 Python 예제입니다. 2021. 9. 16 - 최초 작성 2022. 1. 2 - walk 추가, 실행 시간 측정 import os, glob import time start = time.time() # 하위 폴더는 어떤 것이 와도 상관없다는 의미에서 *를 추가합니다. files = glob.glob(os.path.join('./dogs-vs-cats/*/', '*.jpg')) print('glob') #print(files) print(len(files)) print(time.time() - start) print() start = time.time() files = [os.path.join(root, name) for root, dirs..

특정 경로의 파일 목록을 리스트에 저장하는 파이썬 예제 코드입니다. 2021. 12. 27 최초작성 다음 구조의 디렉토리를 생성한 후, 진행했습니다. 첫번째 버전 파일 이름 목록에 경로를 추가합니다. import os path = './root' for root, dirs, files in os.walk(path): if len(files) > 0: files.sort() for i in range(len(files)): files[i] = root + '/' + files[i] print(files) ['./root/ab/a/a1', './root/ab/a/a2', './root/ab/a/a3'] ['./root/ab/b/b1'] ['./root/cd/c/c1', './root/cd/c/c2', './..
파이썬 리스트에 저장된 모든 문자열에 똑같은 문자열을 결합하는 예제입니다. 2021. 12. 27 최초작성 number = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] print(number) number = [s + '월' for s in number] print(number) 실행결과 리스트의 숫자 뒤에 월이 붙게 됩니다. ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'] 참고 https://stackoverflow.com/quest..

실행한 파이썬 파일의 경로를 얻는 방법입니다. Visual Studio Code에서 하나의 폴더내에 서브 폴더별로 파이썬 코드를 관리할 경우 불러올 데이터 파일 위치를 파이썬 코드 파일 위치로 해야 합니다. 2021. 12. 19 최초작성 첫번째는 실행한 파이썬 파일의 위치를 출력하며, 두번째는 파이썬 파일이 속한 디렉토리의 부모 디렉토리가 출력됩니다. import os python_file_path= os.path.dirname(os.path.abspath(__file__)) print(python_file_path) parent_directory = os.path.dirname(python_file_path) print(parent_directory) 실행 결과입니다. /Users/webnautes/..
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..