본문 바로가기

파이썬

(13)
전개 연산자 '*' 전개 연산자 '*'는 파이썬에서 매우 유용한 연산자 중 하나로, iterable한 객체를 unpack하는데 사용됩니다. iterable 객체란, 리스트(list), 튜플(tuple), 세트(set) 등과 같이 여러 개의 값을 가지고 있는 객체를 의미합니다. 전개 연산자를 사용하면 iterable한 객체의 각 요소를 개별적인 인자로 전달할 수 있습니다. 이를테면, 리스트의 각 요소를 함수의 인자로 전달하거나, 여러 개의 리스트를 합칠 때 유용하게 사용할 수 있습니다. 다음은 전개 연산자를 사용하여 리스트의 요소를 함수의 인자로 전달하는 예시입니다. def my_function(a, b, c): print(a, b, c) my_list = [1, 2, 3] my_function(*my_list) 위 코드에서..
컨텍스트 관리자 컨텍스트 관리자(Context Manager)는 파이썬에서 with 구문을 사용할 때 사용되는 객체입니다. with 구문은 코드 블럭이 실행되기 전에 컨텍스트 관리자의 enter 메소드를 호출하고, 코드 블럭이 실행된 후에는 exit 메소드를 호출하여 컨텍스트를 관리합니다. 이를 통해 파일, 네트워크 연결 등과 같은 리소스를 열고, 사용이 끝난 후 자동으로 닫을 수 있습니다. 컨텍스트 관리자를 사용하려면, 해당 객체는 enter 메소드와 exit 메소드를 구현해야 합니다. 이 두 메소드는 다음과 같은 역할을 합니다. enter(self) : with 구문이 시작될 때 실행되며, 컨텍스트 관리자가 리소스를 할당하고, 이를 초기화하는 등의 작업을 수행합니다. 이 메소드는 with 구문에서 사용되는 변수에 값..
Einsum (Einstein Summation) einsum 연산은 Einstein Summation Convention에 따라 연산을 진행하는 방법이라고 한다. 위키에서 Einstein Notation에 대한 내용을 살펴보면 "한 항에 동일한 첨자가 윗첨자와 아랫첨자로 한 번씩 짝을 지어 나타날 경우, (마치 합의 기호가 항의 앞에 있을 때처럼) 해당 첨자가 가질 수 있는 모든 값에 대해 항의 값을 전부 더하는 것으로 이해한다."고 나타나 있다. 즉, 특정 index의 집합에 대한 합 연산(일반적인 ∑index set 연산) 을 간결하게 표시하는 방법이다. einsum 연산을 통해 행렬, 벡터의 내적(dot products), 외적(outer products), 전치(transpose), 대각합(trace), 행렬곱(multiplication) 등을..
라즈베리파이 OS Python3를 기본으로 설정하기 라이베리파이 OS는 파이썬 2.X와 3.X가 같이 설치되어있지만, 기본값으로 파이썬 2.X를 사용하고 있다. 파이썬 3.X를 기본으로 설정하는 방법은 아래와 같다. 기본 파이썬 버전 확인 : python --version 기본 파이썬 위치 확인 : which python 파이썬 3.X의 위치 확인 : which python3 기본 파이썬 변경 : sudo ln -sf [파이썬 3의 경로] [파이썬 2의 경로]
Qt Designer 컴퓨터를 재설치하면서 가장 까다로운 부분 중 하나가 파이썬 환경을 구축하는 것이다. 시간이 지나면서 패키지들은 업그레이드되고, 내가 예전에 쓰던 환경과는 달라지는 경우가 발생한다. Qt Designer도 그랬다. 어느 블로그를 보고 Qt Designer의 실행파일 위치를 확인하고 시작메뉴에 추가하여 잘 사용했었는데, 다시 찾아 따라해보니 되질 않았다. 예전에는 pyqt5-tools 폴더에 designer.exe가 있었지만, 지금은 qt5_applications\Qt\bin 이라는 폴더에 있다. Qt Designer 설치 1. 패키지를 통한 설치 (Windows) 1. 아나콘다에서 가상환경을 만들고 패키지를 설치할 때, PyQt5와 PyQt5-tools를 설치한다. pip install pyqt5 pip ..
일급 함수(First-Class Function, 퍼스트 클래스 함수) 일급 객체로서의 함수 함수형 언어를 학습하게 되면 반드시 일급 객체(First-Class Object)라는 용어를 접하게되는데, 이것은 크리스토퍼 스트래치(Christopher Strachey)라는 영국의 컴퓨터 과학자가 1960년대에 처음 사용한 개념으로 프로그램 언어 안에서 특정 종류의 객체가 일급의 지위를 가지는가에 대한 의미이다. 일급 함수(First-Class Function)의 특성 객체가 런타임에도 생성이 가능해야 한다. 인자값으로 객체를 전달할 수 있어야 한다. 반환값으로 객체를 사용할 수 있어야 한다. 변수나 데이터 구조 안에 저장할 수 있어야 한다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다. § 일급 함수의 특성 1 : 변수에 함수를 대입할 수 있음 함수자체를 변수에 ..
map() 함수 사용법 map() 함수는 built-in 함수로 list나 dictionary 같은 iterable 한 데이터를 인자로 받아 데이터의 개별 item을 함수의 인자로 전달하고 결과는 map object 형태로 반환하는 함수이다. 따라서 결과를 확인하기 위해서는 list(), tuple() 등의 함수를 사용해야 한다. 함수를 사용하는데 반복문을 사용하지 않고도 동일한 효과를 볼 수 있는 유용한 함수이다.
Numpy array의 인덱싱과 슬라이싱 인덱싱 : 슬라이싱 = 가리키다 : 잘라내다 1D array의 인덱싱과 슬라이싱 a[_from : _to] _to인덱스의 값은 포함하지 않는다. a[_from : _to]로 슬라이싱 하면 array로 반환되고, a[index]로 인덱싱 하면 값이 반환된다. array a를 슬라이싱하여 얻은 객체 a_slice는 복사(copy)가 된 새로운 객체가 아니고 원래 array의 보기(view)이다. 따라서 보기(view)인 a_slice를 새로운 값으로 바꾸면 원래 array의 값도 변경된다. array a를 슬라이싱하여 a와 독립된 새로운 객체 a_copy를 얻고 싶다면 copy() 메소드를 사용한다. 이 경우 a_copy의 값을 변경하더라도 a의 값은 변함없다. 2D array의 인덱싱과 슬라이싱 : [ ,..