반응형

프로그래밍/Python 37

파이썬 데이터 분석 준비! - Numpy배열 다루기 - 2(배열 데이터 다루기)

안녕하세요 Dibrary입니다. 저번 글에 이어서 이번에는 배열의 데이터를 다뤄보겠습니다. 혹시 Numpy배열을 만드는 방법을 모르신다면 이전 글을 참고해 주세요. 파이썬 데이터 분석 준비! - Numpy배열 다루기 - 1(객체 만들어보기) 안녕하세요 Dibrary입니다. 최근 화두가 되는 데이터 분석 및 빅데이터 등등 데이터가 들어가는 것에 파이썬이 안쓰이는 곳이 없습니다. 데이터를 다루려면 Numpy와 Pandas를 다룰 줄 아는 것이 거진 dibrary.tistory.com Numpy를 사용하려면 당연히 import부터 해 주셔야 합니다. 먼저 데이터의 자료형을 바꿔보겠습니다. astype 함수를 사용해서 자료형을 입력하면, 구성 데이터가 해당 자료형으로 변경됩니다. 자료형은 Numpy 자료형을 써..

Dixon Q test - 특이치 식별 및 제거, 파이썬으로 구현

안녕하세요 Dibrary입니다. 이번 시간에는 데이터 분석을 하기 전에 데이터의 이상치(outlier)를 제거하는 Dixon Q test를 파이썬으로 구현 해 보겠습니다. 먼저, Dixon Q test에 대해 알아보겠습니다. Dixon Q test는 이상치를 제거할 때 사용할 수 있습니다. 식은 간단하게 아래와 같이 나타낼 수 있고, 여기서 gap은 이상치(outlier)로 추정되는 값, 그리고 그 값과 가장 가까운 숫자간의 절대값 '차이' 입니다. range는 전체 데이터의 (최대값 - 최소값) 차이 입니다. 이렇게 계산된 Q값이 table의 Q값보다 크다면 이상치(outlier)로 추정되는 값이 이상치가 맞다는 결론을 내립니다. 신뢰도를 90, 95, 99로 다르게 적용 할 수록, table의 Q값은..

Anderson-Darling 통계 - 정규성 검정, 파이썬으로 확인하기

안녕하세요 Dibrary입니다. 이번 시간에는 파이썬으로 Anderson-Darling 통계량을 확인해 보는 방법을 소개하겠습니다. 먼저, Anderson-Darling 통계를 보기전에, 먼저 알아야 할 사전 지식은 3가지가 있습니다. 귀무가설 대립가설 P-value 통계를 공부 해 보신 분이라면 당연히 알 수 있겠지만, 모르는 분들을 위해 간략히 소개만 해 보겠습니다. 귀무가설(H0) 쉽게 표현하자면 '차이가 없다'라고 주장하는 가설이라고 보시면 됩니다. 그리고, 이 가설이 맞지 않음을 즉, '차이가 있음'을 통계학적 증거로 증명하면 됩니다. 대립가설(H1) 귀무가설의 반대입니다. '차이가 있다' 라고 보통 주장하는 가설입니다. 귀무가설의 기각 여부가 대립가설의 통계학적 결과로 판별 됩니다. P-val..

파이썬 데이터 분석 준비! - Numpy배열 다루기 - 1(객체 만들어보기)

안녕하세요 Dibrary입니다. 최근 화두가 되는 데이터 분석 및 빅데이터 등등 데이터가 들어가는 것에 파이썬이 안쓰이는 곳이 없습니다. 데이터를 다루려면 Numpy와 Pandas를 다룰 줄 아는 것이 거진 필수가 되었죠. 그래서, Numpy를 사용하는 방법을 간단하게 정리 해 두고자 합니다. 먼저 따라해보기 위해서는 Jupyter를 실행 해 주세요. 그리고, 터미널을 열어서 pip install numpy를 해 주시면 됩니다. 그러면 알아서 설치가 완료 됩니다. 이제 준비는 끝났습니다. 본격적으로 Numpy를 익혀보겠습니다. 제일 먼저 numpy모듈을 불러들어와야 합니다. 아래와 같이 입력 해 주세요. 위 입력에서 as np는 'numpy라는 명칭을 np라는 별칭으로 앞으로 사용하겠다~' 고 컴퓨터에게..

알고리즘을 풀 때 항상 생각해봐야 하는 것 - 복잡도

안녕하세요 Dibrary입니다. 개발자라면 항상 습관적으로 알고리즘을 풀곤 하죠. 주로 파이썬이 '생각'을 구현하는데 편해서 많이들 사용하는데 생각보다 파이썬은 느린 언어죠. 따라서 알고리즘문제를 풀 때 반드시 조심해야 하는 것 2가지가 있습니다. 1. 시간복잡도 네 시간복잡도는 말 그대로 코드로 해답을 구하는데 '시간'이 얼마나 걸리느냐 입니다. 백준 알고리즘을 예로 들어보겠습니다. 이렇게 입력값의 범위가 주어지면 숫자가 얼마나 큰지 감이 오시나요? 아주 어마어마하죠. 문제는, 이렇게 큰 범위 값이 항상 주어지는 것은 아니지만, 전부가 주어질 수도 있다는 겁니다. 그렇기에 파이썬으로 해당 문제를 풀기 전에 시간을 먼저 구해보는 습관을 들이면 좋습니다. 위 코드는 임의로 제가 10의 100제곱만큼의 범위..

파이썬으로 구현해 확인하는 OPCUA통신 - Server편

안녕하세요. Dibrary입니다. 이번엔 저번에 이어서 OPC통신 중에 Server를 만들어 보겠습니다. 역시 opcua모듈을 사용하며, 이번에도 간단합니다. (노드가 많아지면 약간의 노가다가 필요할 뿐 그 외에 나머지 원리는 같습니다.) 이번에도 저번과 비슷하게 IP만 달라지고 포트(4842)는 똑같이 해보았습니다. 우선 name은 그냥 제가 임의로 지었고, 노드는 테스트용으로 2개만 만들어보았습니다. add_variable이 중요한데, ns=1은 노드의 번호이고, s=로 시작하는 것이 실제 노드의 '이름'입니다. 그 옆에 "normal_operation"은 사람이 판단하는데 도움을 주는 이름이죠. 그리고 마지막으로 숫자는 '초기값'입니다. 0으로 했으니 0으로 처음에 쓰고 그 상태를 유지합니다. 밑에..

파이썬으로 구현해 확인하는 OPCUA통신 - Client편

안녕하세요. Dibrary입니다. 이번에는 OPC통신이라는 것을 파이썬으로 해보겠습니다. 먼저 OPC통신은 modbus통신처럼 산업현장에서 사용하는 프로토콜 중 하나인데요, 최근에는 OPC를 사용해서 장비별 구분 없이 데이터만을 주고받는데 초점을 두고 있습니다. 저 역시 OPC로 통신하는 프로그램을 만들어 보았고, slave역할의 장비에서 값이 바뀌는지, 써지는지 확인을 파이썬으로 진행했었습니다. 참고로 Client는 OPC서버의 값을 '읽어서 확인'할 수 있는 것을 말합니다. 저는 순간순간 확인하기 쉽게 jupyter를 사용하겠습니다. 혹시 설치가 안 되신 분들은 아래의 글 참고하시면 됩니다. Python으로 GUI(PyQt5) 구현하기! - 처음이니까 anaconda 설치부터 환경변수까지 한 번에~ ..

반응형