Python - zip 활용
·
Programming/Python
zip 이란- zip은 Python의 내장 함수로,   여러 개의 iterable의 요소(예: 리스트, 튜플 등)들이 짝을 이루어 튜플로 묶이게 됩니다.- zip은 다양한 상황에서 여러 데이터 리스트를 병렬로 처리할 때 유용합니다. zip 함수의 예시입력:- 여러 개의 iterable을 인수로 받습니다. 출력: - 각 iterable의 동일한 인덱스에 위치한 요소들이 짝을 이루는 튜플을 반환하는 iterator를 생성합니다. - 이 iterator는 가장 짧은 iterable의 길이에 맞춰집니다. 예시 코드# 두 개의 리스트를 zip 함수로 묶기list1 = [1, 2, 3]list2 = ['a', 'b', 'c']zipped = zip(list1, list2)print(list(zipped)) # 출..
Python - Product vs Permutations vs Combinations
·
Programming/Python
itertools 모듈은 product(곱집합), permutations(순열), combinations(조합)의반복 가능한 객체를 생성하는 데 유용한 함수들을 제공합니다. 이 모듈의 함수들은 모두 리스트나 튜플 같은 iterable 객체의 요소들을 다양한 방식으로 조합해줍니다.각각의 함수가 어떻게 다른지 살펴보겠습니다. 1. itertools.productCartesian product(곱집합)를 계산합니다.입력된 모든 iterable 객체의 가능한 모든 조합을 생성합니다.각 iterable의 요소가 주어진 순서대로 선택하므로 순서를 보장합니다.from itertools import productresult = list(product([1, 2, 1], ['a', 'b']))print(result)# ..
Python - Numpy란 [1]
·
Programming/Python
Numpy란Numpy는 Numerical Python의 약자로 Numeric과 Numarray라는 두 개의 패키지를 기반으로, 다차원 배열 객체를 컨트롤하는데 이점이 있습니다. Numpy는 Pandas가 구축된 기본 데이터 구조와 연산을 제공합니다.Pandas를 사용하는 것인 Numpy도 같이 사용하는 하는 의미입니다.  List와 비교Numpy를 활용하는 것은 Python List보다 50배 더 빠릅니다.사용시 메모리에서 연속적인 참조위치로 저장이되므로 액세스시 매우 효율적이고, 최근 CPU와도 최적화가 잘 되어있습니다. C, C++로 프로그래밍되어 있으며Numpy를 이용한 array object를 ndarray라고 부릅니다. 예제 )import numpy as nparray = np.array([[1..
Python - 클로저와 __call__ 함수
·
Programming/Python
클로저 기능의 필요성을 확인하기 위해 아래와 같이 defaultdict을 활용하여 result값을 초기화 시키는 코드가 있다. defaultdict(키가 없을 경우 초기 값, 선언된 dict) 형식에 맞춰 result를 선언하였고, 키가 없을 경우 초기 값에 로그를 보기 위해 숫자가 아닌 log_init 함수로 설정하였다. ( 함수또한 일급객체이므로 참조 값으로 활용 가능 ) def log_init(): print('키가 초기화 됨') return 0 from collections import defaultdict current = {'green': 15, 'blue': 7} increments = [ ('red', 6), ('blue', 17), ('orange', 9) ] result = defaul..
Python - 파이썬 코딩의 기술을 통한 클린코딩
·
Programming/Python
해당 글은 파이썬 코딩의 기술(개정 2판 -> 3.8버전까지 맞춤형) 서적을 읽고 나중에 다시 보려고 몇몇 내용을 간략하게 정리했다. '이렇게 짯으면 더 좋은 코드가 되었을텐데' 라는 부분이 많았고 알지만 애매하게 알았던 부분에 대해 도움이 되었던 내용을 정리했다. BETTER WAY 08 - 여러 이터레이터에 루프를 수행하려면 zip를 사용하라 주어진 names list의 가장 긴 길이를 가지는 원소를 구해보자. longest_name = None max_count = 0 names = ['Kain', 'Joe', 'Alice'] counts = [ len(n) for n in names ] print(counts) >>> [4, 3, 5] enumerate를 생각할 수 있다. for i, name i..
Python - AES 양방향 암호화
·
Programming/Python
모듈 설치 $ pip install pycryptodome 예제 코드 import base64 from Crypto import Random from Crypto.Cipher import AES class AES256(): def __init__(self, key): self.bs = 128 self.key = key.encode('utf-8') self.key = AES256.str_to_bytes(key) @staticmethod def str_to_bytes(data): u_type = type(b''.decode('utf8')) if isinstance(data, u_type): return data.encode('utf8') return data def _pad(self, s): return s..
Python - ModuleNotFoundError : No module named
·
Programming/Python
pip install로 해당 package를 다운 받았지만 ModuleNotFoundError 에러가 나올 때 설치한 패키지의 directory가 python실행시 포함되는지 확인 $ cat test.py import sys print(sys.path) $ python test.py ['', '/usr/lib/python3.6', '/usr/lib/python3.6/plat-x86_64-linux-gnu', ...'/usr/lib/python3.6/dist-packages'] python shell에서도 확인 $ python >>> import sys >>> print(sys.path) >>> ['', '/usr/lib/python3.6', '/usr/lib/python3.6/plat-x86_64-lin..
Docker로 Jupyter Lab 실행
·
Infra/Docker
[ Windows에 Docker설치 ] # Power Shell을 관리자권한으로 연 후, 명령어$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart #x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지 설치 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi #버전 설정$ wsl --set-default-version 2 #아래 URL에서 Wind..
wave35
'python' 태그의 글 목록 (2 Page)