본문 바로가기

Hello python!

(25)
파이썬 데이터분석_numpy변환(정렬, 참조, 복사)2 20221020 12일차 * 행렬에서 전치행렬이란 행과 열을 교환하여 얻는 행렬이다. 하지만 위의 사진과 같이 메서드를 적용하면 원본 값이 변하는것이 아닌 시뮬레이션의 결과만 출력된다. 그렇다면 원본까지 바꿔주는 메서드는 뭐가 있을까 .revel() 메서드는 다차원의 행렬을 1차원으로 바꿔준다. 3 x 4 배열인 arr1에 .revel() 메서드를 적용시킨 arr2는 1차원 배열이 되는것을 볼 수 있다. arr1에 .reshape 메서드를 적용시킨 배열을 arr3이라고 했을때arr3에 값을 수정하면 원본 arr1도 값이 수정되는것을 볼 수 있다. 동일한 사이즈에 값은 다른 난수로 이루어진 배열 2개을 만들어보자. 변경되는 배열의 요소 수가 동일하면 .reshape()와 동일하게 동작한다. 사이즈가 다르면..
파이썬 데이터분석_numpy변환(정렬, 참조, 복사) 20221020 12일차 만약 수의 개수가 많아졌을때 계산은 어떤 방식이 빠를까? 우리가 지금까지 애용하던 for반복문이 빠를까? Numpy의 배열 계산(백터 연산)이 빠를까? 확인해 보자. 둘다 1억번의 계산을 돌린 결과이다. 결론은 for 반복문은 16.5초 백터연산은 57.4 밀리세컨드가 나왔다. * 1s(초) = 1,000㎳ Numpy배열을 이용한 백터 계산이 훨~씬 빠르다는것을 알 수 있다. array(배열) 또한 정렬을 할 수 있다. 하지만 리스트, 튜플 등의 자료형과 다른점은 배열이기 때문에 진행 방향을 설정 할 수 있다는 점이다. 0부터 5까지의 np.array(넘파이 배열)를 생성 했을 때 변수명을 x로 바꿔서 기본 파이썬 문법으로 순번을 뒤집을 수 있다. 하지만 난수가 오는 배열은 어떨..
파이썬 데이터분석_Numpy_연산 20221020 11일차 Numpy의 array도 데이터 타입의 한 종류이기 때문에 연산이 가능하고 더 다양하다. 총 3개의 array를 만들어 연산을 해보자. Numpy에서는 기본적인 사칙연산은 위와 같이 두 가지 방법으로 연산이 가능하다. * 중요한점은 배열이 같은 것 끼리 가능하다. 다르면 Error 빼기로 나온 값이 음수로 출력되기도 한다. 리스트 타입이나 숫자타입에서는 볼 수 없었던 지수곱 표현이 등장했다. 수리적인 지식이 많이 부족하다는것을 느낀다. 제곱근 또한 가능하다. 행렬곱은 일반 곱이랑 다른데 그냥 a * b의 결과는 위 사진과 같지만 메서드로 행렬곱을 쓰면 행렬끼리 곱하는 계산이 적용된다. 그냥 a와 b를 비교한다면 True와 False로 표기된다. 하지만 메서드를 쓰면 완전히 일치하..
파이썬 데이터분석_Numpy 20221018 10일차 Numerical 이란 단어의 사전적 의미는 '수의 관한' 이다. Numpy; 'Numerical python', 파이썬에서 수의 관해 따로 배열 형태로 만들어 놓은것이다. 행렬 및 벡터 연산에 필요한 다양한 함수를 제공하고 빠른 연산을 처리할 수 있는 장점이 있다. * 리스트 객체보다 연산 속도가 빠름 import 기능으로 numpy를 추가하고 as 구문으로 별칭으로 바꿀 수 있다. * arry (배열) axis(중심선) 다차원 배열으로 데이터 구조가 표현 가능하며 여러가지 연산 및 함수 표현이 가능하다. np.arra()를 통해 만들수 있고 클래스 처럼 배열 속성을 저장하여 출력할 수 있다. type()으로 봤을때 리스트와 numpy가 다르다는것을 알 수 있다. numpy는 ..
파이썬_OOP(객체 지향 프로그래밍)_상속과 오버라이딩 20221017 9일차 상속은 현실의 단어 뜻 처럼 부모의 것을 물려받는 의미이다. 부모 클래스에 있던 요소들을 자식 클래스에서 쓸 수 있다. 또한 자식 클래스에서 리모델링 또한 가능하다. 우선 Person이라는 class를 만들어준다. 여기에는 이름, 나이, 키로 요소를 설정한다. 그리고 데이터를 저장해준다. 그리고 바로 Student라는 클래스를 Person이라는 클래스를 상속해 만들어준다. 그리고 Student클래스에는 전공이라는 major 요소를 추가한다. 위의 사진과 같이 Student라는 클래스에서는 이름,나이,키의 요소를 추가하지 않았지만 Person이라는 클래스를 상속받아 사용이 가능한것을 볼 수 있다. *각 요소의 데이터는 꼭 입력해야한다. 메모리 구조로 보면 처음 Person이라는 클래..
파이썬_OOP(객체 지향 프로그래밍)_구조체와 클래스2 20221017 9일차 self 키워드는 내거 라는 뜻 같다. self 키워드를 지정하면 해당 객체의 주소가 들어가는 효과가 있기 때문에 다른 중복데이터에서 구별 된다. * 수 많은 고양이들 중에서 원하는 고양이의 정보만 보고 싶을때 유용하다. Teacher class를 새로 만들고 설계도의 정보를 한줄로 보고 싶다면 위와 같이 self키워드와 함수의 콜라보로 간편하게 볼 수 있다. 위와 같이 클래스를 정의하고 설계도를 만들고 __init__함수를 만들고 bird1=Bird(self,name,color,live,move)를 실행하면 위의 함수로 이동, self값에 맞게 정보가 입력되고 순서대로 아래의 두번째와 세번째 함수의 실행되고 출력은 위와 같이 나온다.
파이썬_OOP(객체 지향 프로그래밍)_구조체와 클래스 20221014 8일차 파이썬 oop(객체 지향 프로그래밍) oop란 나무위키의 개요에서 아래와 같이 서술한다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다. 구조체와 추상화의 개념을 알아야한다. 구조체란 변수명으로 어떤 대상을 프로그래밍적으로 묘사할때 사용한다. 예를 들어 사람을 묘사하고 싶을때 여러가지의 목록들이 존재할 것이다. 왜냐하면 똑같은 사람은 없기 때문이다. 하지만 사람은 어떤 수의 배열이나 인덱스로 표현이 불가능하다. 그래서 어떤 명칭이나 특징을 변수로 잡고 묘사하는게 합리적이다. 하지만 변수..
파이썬 시작 (함수) 20221011 5일 차 함수는 반복문에서 사용하는 기능들을 묶어서 사용할 수 있는 자료이다. 함수 안에 for 반복문, if문 등등을 넣어서 원하는 자료를 도출할 수 있다. def를 사용하여 함수를 만든다. * def 함수이름(매개변수): 함수 이름 plus는 a를 매개변수로 하는 함수이다. 따라서 plus 함수에 매개변수 5를 넣어서 실행하면 6 → print(5 + 1) 함수 끝나면 실행 → plus(5)가 종료된 후 print("함수 끝나면 실행") 으로 출력이 된다. 위 사진의 오류의 이유는 간단하다. a를 지정하지 않았는데 a를 바로 출력할수는 없다. 35번에서 6과 none이 출력되는 이유는 return value가 없기 때문이다. 6은 print(a + 1)을 출력한것 뿐이다. sum_fu..