Language/Python

해당 포스팅에서는 pyinstaller 로 특정한 파이썬 파일을 exe 파일로 생성하는 방법을 알아본다. ✔️ pyinstaller 설치 $ pip install pyinstaller ✔️ pyinstaller 옵션 정보 우선 pyintaller 에서 자주 쓰이는 옵션은 아래와 같다. Option Desciption -w, --noconsole 콘솔창이 출력되지 않게 하는 옵션 -F, --onefile 하나의 실행파일만 생성하도록 하는 옵션 -n NAME, --name NAME 변환된 이름을 지정. 별도로 지정하지 않을 경우 스크립트 이름을 따라간다. ✔️ pyinstaller 실행 이제 아래의 커맨드를 통해 우리의 python 파일을 exe 파일로 만들어주면된다. exe 파일은 dist 폴더 하위에 위..
해당 포스팅에서는 우리의 파이썬 프로젝트를 PyPI 에 배포하는 방법을 다룬다. 따라서 PyPI 에 회원가입이 되어있어어 한다. 🔥 PyPI 에 올라갈 패키지 구조화 우선 사용하고 싶은 파이썬 패키지 이름. 한마디로 pip install 에 사용할 패키지 이름으로 폴더를 생성해준다. ✔️ __init__.py 생성 이제 __init__.py 파일을 생성해준다. 생성하지 않으면 파이썬 패키지로 인식하지 않기때문에 꼭 생성해주어야 한다. ✔️ 코드 작성 및 파일 이름 설정 이제 코드를 작성해주고, 파일의 이름을 설정해준다. 해당 폴더에 있는 내용들이 그대로 PyPI 에 패키지화 되어 올라가기 때문이다. 또한 여기서 설정한 파이썬 파일이름이 import 문으로 사용된다. 여기까지 준비되었으면 PyPI 에 바로..
일급객체(함수)는 4가지 특징을 갖고 있음 1. 런타임 초기화 (실행 시점에 초기화) 2. 함수를 변수에 할당 가능해야함 3. 함수를 다른 함수 인수로 전달 가능해야함 4. 함수를 결과로 반환(return) 가능 해야함 # 팩토리얼 함수 객체 (재귀) def factorial(n): '''Factorial Function -> n : int''' if n==1: return 1 return n * factorial(n-1) class A: pass print(factorial(5)) print(factorial.__doc__) print(type(factorial), type(A)) #함수와 클래스 메타 차이 print(set(sorted(dir(factorial)))- set(sorted(dir(A))..
https://revi1337.tistory.com/107?category=899508 [Network] ICMP 프로토콜 ICMP프로토콜 ICMP (Internet Control Message Control)은 오류 보고기능, 호스트에 질의(Ping Test) 목적으로 활용됨. - IP프로토콜은 데이터 전송중 오류가 발생해도 보고하는 기능이 없는 비신뢰성 프로토콜 revi1337.tistory.com from socket import * import struct import os def parse_ip_header(ip_header): ''' 매개변수로 들어온 ip_header를 파싱하여 20Byte크기의 IP_header와 나머지 IP_payload를 return 해주는 코드 ''' ip_header..
Numpy 에서는 Boolean값으로 인덱싱 또한 가능하다. 기본적인Boolean 인덱싱 - 7개의 요소를 갖는 names라는 배열과, 7행 4열의 형태를 갖고 랜덤 요소를 갖는 data배열을 생성 - names배열의 요소중 icmp라는 이름을 갖고있는 인덱스에만 True값을 표시. 나머지는 False 표시. - data[행, 열] - data의 행 인덱스값을 names의 요소가 icmp인 인데스값으로 설정. 즉, 행인덱스는 2,5,6로 설정되는 것. - data의 열 인덱스값을 2번째까지 출력 != 와 ~ 를 이용한 Boolean 인덱싱 - 결과적으로 기본적인 Boolean과 비슷함. - names배열의 요소중 tcp가 아닌것에 모두 True를 출력. - != 와 ~연산자는 컴공이라면 알겠죠?? 설명 ..
https://revi1337.tistory.com/75?category=899424 [Python] Numpy:: 인덱싱과 슬라이싱 인덱싱과 슬라이싱 인덱싱 표준 파이썬처럼, Numpy를 이용해 만든 배열에서도 인덱싱과 슬라이싱이 가능. - 표준 파이썬처럼 기본적인 인덱싱이 가능 슬라이싱 - 당연하게 슬라이싱을 통하여 값 revi1337.tistory.com 이전 포스팅에선 1차원 배열에서의 인덱싱과 슬라이싱에 대해 알아보았음. 하지만 1차원 배열에서의 인덱싱과 슬라이싱은 표준 Python과 다를게 없음. Numpy는 2차원 혹은 다차원의 배열의 인덱싱 및 슬라이싱도 지원하여 빠른 데이터처리를 해주는 장점이 있음. 2차원 배열에서의 인덱싱과 슬라이싱 2차원 배열에서의 인덱싱 - 각 행만 따로 출력해 줄..
인덱싱과 슬라이싱 인덱싱 표준 파이썬처럼, Numpy를 이용해 만든 배열에서도 인덱싱과 슬라이싱이 가능. - 표준 파이썬처럼 기본적인 인덱싱이 가능 슬라이싱 - 당연하게 슬라이싱을 통하여 값을 변경도 가능. 슬라이싱에서 주의할 점. - 슬라이싱을 통해 새로운 배열을 생성했을 때, 새로 생성된 배열의 값을 바꿔주면 원래의 배열의 값도 같이 바뀌는 것을 확인할 수 있음. - 원본 배열의 슬라이싱을 통해 생성한 배열 arr1_slice는 새롭게 만들어진 것이 아니라, 원본배열에 대한 포인터 개념으 로 만들어진 것이기 때문에 값이 바뀌는 것임. 이럴 땐 copy()함수를 사용해서 복사를 해주어야 함.
스칼라연산 1. 배열의 각 요소의 곱 - 단순하게 배열의 각 요소에 2를 곱해서 출력해줌 - 서로 다른 배열들에서 같은 인덱스에 있는 값을 서로 곱해줄 수 있음. - 서로 다른 배열들의 shape가 같지 않으면 오류가 출력되는것을 확인할 수 있음. - shape은 배열의 행과열을 뜻함. 2. 배열의 각 요소 역수 취하기 3. 배열의 각 요소에 대한 제곱과 제곱근 - 각 요소에 대한 제곱값 - 각 요소에 대한 제곱근값 4. 1개 이상의 배열에서 각 요소끼리의 값 비교 - 1개 이상의 배열에서 각 요소의 크기를 비교할 수 있음. - 마찬가지로 2개 이상의 배열을 서로 비교, 연산을 할 떄, 배열의 행과열(shape)가 일치하지 않으면 오류를 출력
데이터타입과 관련된 메소드/함수 # dtype # astype # issubdtype 데이터 타입 종류 - int는 singned int. 즉, 부호 있는 int라고 본다. 음수와 양수 둘다 표현 가능. 8,16,32,64는 비트 크기를 의미함. int8는 2^8만큼의 수를 표현 가능. -128 ~ 127 int16는 2^16만큼의 수를 표현 가능. -32768 ~ 32767 int32는 2^16만큼의 수를 표현 가능. -2147483648 ~ 2147483647 - uint는 unsigned int. 즉, 부호가 없는 int라고 본다(+밖에 표현을 못함). 양수밖에 표현을 하지 못하며 동일하게 8,16,32,64 는 표현할 수 있는 비트 크기를 의미. uint8는 2^8만큼의 수를 표현 가능. 0 ~ ..
Numpy에서 배열을 만들 수 있는 함수들 # array # random.randn # asarray # arange # ones, ones_like # zeros, zeros_like # empty, empty_like # full, full_like # eye, identity Numpy에서 배열의 형태와 구조를 파악하는 메소드 # ndim # size # shape # reshape 최우선적으로 numpy 라이브러리를 import해와서 np로 지정. Numpy에서 배열을 만들 수 있는 함수들 1. array - 단일 리스트를 배열로 생성할 수 있음. - 2중 리스트를 2차원 배열로도 생성 가능. 2. random.randn - 랜덤값을 가지는 10개의 요소를 가진 배열 생성 가능. - 2행 3열을 ..
REVI1337
'Language/Python' 카테고리의 글 목록