분류 전체보기 1191

[Python] Numpy - 배열의 생성과 변형 2

개요 2022.11.11 - [Python] NumPy - 배열 1 2022.11.12 - [Python] NumPy - 배열 2 (인덱싱과 슬라이싱) 2022.11.13 - [Python] NumPy - 배열의 생성과 변형 1 에 이어 NumPy에 대해서 계속 정리한다. 배열의 크기 변형 reshape reshape 함수로 배열 내 데이터는 유지하면서 형태를 변경할 수 있다. a = np.arange(10) a a.reshape(2, 5) # 실행 결과 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) 사용하는 원소의 개수가 정해져 있기 때문에 매개변수로 전달하는 튜플 중 하나가 -1이면, 자동으로 차원을 계산..

[Linux] wait - 프로세스 종료 대기

wait 실행한 프로세스가 종료할 때까지 대기하는 명령어이다. 여러 작업을 동시에 실행할 때 모든 작업이 종료되기를 기다리거나, 특정 작업이 종료되는 것을 기다릴 때 사용한다. 백그라운드 작업 종료 대기 아래의 경우 command1, command2, command3이 모두 종료될 때까지 기다린 후, 모든 명령어가 실행이 종료되면 command4를 실행한다. command1 & command2 & command3 & wait command4 특정 프로세스 종료 대기 특정 프로세스가 종료되기를 기다리고 싶다면 프로세스 ID(pid)를 전달하면 된다. wait pid # 예시 wait 100 내 경우에는, 특정 스크립트를 크론탭으로 주기적으로 실행하되 스크립트가 실행 중임을 나타내는 doing 파일이 있으면..

Linux 2022.11.17

[awk] 사용 예시

개요 2022.09.10 - [awk] 개념에서 awk 명령어에 대한 내용을 정리했다. 이 글에서는 사용했던 예시를 정리한다. 연산 결과 출력 mpstat | tail -1 | awk '{print 100-$NF}' 참고 : 2021.05.17 - 리소스(CPU/MEM) 확인 필드 값과 문자열을 붙여 출력 free | grep ^Mem | awk '{printf "actual_usage=%s, total=%s, actual_usage_ratio=%.2f%% \n", $3, $2, $3*100/$2}' 참고 : 2021.06.12 - [CentOS 7] 메모리 사용률 계산 특정 필드의 합 연산 find ./* -type f | xargs ls -l | awk '{ result += $5 } END { pr..

Linux 2022.11.16

[Airflow] Clear - Task 재실행

Clear 스케쥴링되어 실행된 DAG의 Task가 실패하거나 데이터 재처리 등의 이유로 DAG의 모든 Task 또는 일부 Task를 다시 처리하는 경우가 자주 있다. 이 경우 Task가 실행된 Task instance를 지움으로써, 문자 그대로 Clear 하여 Task를 다시 실행할 수 있다. clear를 통해 Task instance를 삭제하면 max_tries를 0으로 업데이트하고 현재 Task instance 상태를 None으로 설정하기 때문에 Task가 다시 실행된다. Task instance를 삭제해도 기록은 삭제되지 않는다. Web UI Clear 특정 Task Clear Clear할 Task instance를 선택한 후, Task Actions > Clear를 클릭한다. Clear 시 사용할..

Apache Airflow 2022.11.15

[Airflow] backfill - 스케쥴 시점이 지나간 DAG 실행하기

개요 여기 이미 생성되어 있는 DAG가 있다. DAG on 시 처리되는 시점은 2022-11-01인데, 이보다 전의 시점, 2022-10-02 시점부터의 데이터를 처리하고 싶다. DAG 생성 시 전달할 수 있는 매개변수인 start_date, end_date, catchup 설정을 사용해서 처리할 수 없는 상황이라면 어떻게 해야할까? Backfill 지정된 시간 범위 동안 스케쥴링되는 모든 DAG를 실행하는 명령어이다. 단어 의미 그대로 데이터를 채우는 작업으로, 과거 시점의 공백을 메우기 위해 사용한다. catchup이 비활성화된 상태에도 실행할 수 있다. airflow dags backfill \ --start-date START_DATE \ --end-date END_DATE \ dag_id # 예..

Apache Airflow 2022.11.14

[Python] NumPy - 배열의 생성과 변형 1

개요 2022.11.11 - [Python] NumPy - 배열 1 2022.11.12 - [Python] NumPy - 배열 2 (인덱싱과 슬라이싱) 에 이어 NumPy에 대해서 계속 정리한다. 자료형 NumPy의 배열(ndarray 클래스 객체) 내 원소는 모두 같은 자료형이어야 한다. array 함수로 배열 생성 시 dtype 인수를 사용하여 자료형을 명시적으로 지정할 수 있다. 전달한 매개변수가 없으면 타입을 추론하게 된다. 자료형을 지정할 때는 아래와 같은 dtype 접두사 + 바이트/글자 수를 전달하여 지정한다. 숫자는 생략할 수 있고, 생략 시에는 OS에 따라 적절한 크기로 지정된다. dtype 접두사 설명 사용 예 b 불리언 b (참 혹은 거짓) i 정수 i8 (64비트) u 부호 없는 정..

[Python] NumPy - 배열 2 (인덱싱과 슬라이싱)

개요 2022.11.11 - [Python] NumPy - 배열 1에 이어 이번 글에서는 배열의 인덱싱과 슬라이싱에 대해 정리한다. 인덱싱 1차원 배열의 인덱싱은 리스트의 인덱싱과 동일하다. a = np.array(range(0, 9)) a[2] 실행 결과 2 다차원 배열인 경우에는 쉼표를 이용하여 접근할 수 있다. 쉼표로 구분된 차원은 축(axis)이라고 한다. b= np.array([[10, 20, 30, 40], [50, 60, 70, 80]]) b # 2행 3열 b[1, 2] 실행 결과 array([[10, 20, 30, 40], [50, 60, 70, 80]]) 70 슬라이싱 다차원 배열을 슬라이싱할 때는 쉼표와 일반적인 Python 슬라이싱을 함께 사용한다. b = np.array([[10, ..

[Python] NumPy - 배열 1

NumPy 수치해석, 선형 대수(linear algebra) 계산 기능을 제공하는 Python 패키지로, 자료형이 고정된 다차원 배열 클래스인 ndarray 클래스와 벡터화 연산(vectorized operation)을 지원한다. CPython에서만 동작한다는 특징을 가지며, 넘파이라고 읽는다. 직접 데이터 분석을 할 일은 없는데, 관련 소스를 볼 일이 생기는 것 같아 NumPy와 Pandas 개념을 정리해두려고 한다. 이 글은 기본적인 배열 생성에 대해서 정리한다. 배열 (array) 많은 숫자 데이터를 하나의 변수에 저장하여 관리할 때 속도가 느리고 메모리를 많이 차지하는 리스트보다 배열을 사용하는 것이 적은 메모리로 많은 데이터를 빠르게 처리할 수 있다. 배열을 리스트와 비슷하지만 다음과 같은 점에..

[boto3] 예외 처리

개요 Python으로 boto3을 사용할 때 발생하는 예외를 처리해 로그 또는 메시지를 남기거나 예외를 무시해야 하는 경우가 있다. 이 글에서는 boto3을 사용할 때 발생하는 예외를 처리하는 방법을 정리해둔다. 예외 종류 boto3를 사용할 때는 botocore 또는 AWS Service에서 예외가 발생할 수 있다. Botocore Exception Boto3가 의존하는 botocore 패키지 내에 정적으로 정의되는 예외이다. 클라이언트 측의 동작, 구성, 유효성 검사와 관련된 예외가 정의되어 있다. 정의된 예외는 https://github.com/boto/botocore/blob/develop/botocore/exceptions.py 에서 확인할 수 있다. AWS Service Exception bo..

Python 2022.11.10

[Git] Commit 메시지 수정

개요 Commit 메시지를 다 못 썼는데, 실수로 엔터를 눌러버렸다……. 원격 저장소에 저 메시지로 Push 할 수는 없으니, 커밋 메시지를 수정하는 방법을 정리해둔다. 마지막 커밋 메시지 수정 git commit --amend # --amend : 이전 commit 수정 --amend 옵션을 사용하면 자동으로 텍스트 편집기를 실행시켜 마지막 커밋 메시지를 열어준다. 편집기에서 메시지를 변경하고 저장하면 된다. 💡 commit 이후 새로운 수정 사항까지 포함하고 싶은 경우에도 git commit --amend를 사용할 수 있다. 내용 수정 -> git add -> git commit --amend 순으로 실행하면 된다. 여러 커밋의 메시지 수정 여러 개의 커밋 메시지를 수정할 때는 git rebase를 ..

Git | GitLab 2022.11.09