달력

11

« 2019/11 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30


 

 

 

클래스 정의

·         "class 클래스명" 사용하여 정의합니다.

·         데이터와 데이터를 변형하는 함수를 같은 공간에 작성하게 됩니다.

·         클래스 내부에 선언된 변수와 메서드는 모두 현재 객체의 attribute(속성) 이라고 합니다.

·         다른 OOP 언어와 달리 파이썬은 Dynamic Language로서 새로운 attribute 동적으로 추가 있고, 메서드도 일종의 메서드 객체 취급하여 attribute 포함하고 있습니다.

 

 

 

class 클래스명: #헤더(Header)

 #몸체(Body)

    멤버변수

    def 멤버메소드명(인자):

        메소드 내용

 

 

 

 

 

 

클래스 생성

클래스 멤버를 정의하지 않은 가장 간단한 클래스

class MyClass:

    pass

 

 

 

 

 


'Development > Python' 카테고리의 다른 글

클래스 정의  (0) 08:00:22
dtype  (0) 2019.11.15
AttributeError: module 'xxx' has no attribute 'xxx'  (0) 2019.11.14
2002년 한일월드컵 기간의 기온 공공데이터 가져오기  (0) 2019.11.14
행/열 합계 - sum()  (0) 2019.11.13
교환 법칙과 분배 법칙  (0) 2019.11.12
Posted by codedragon codedragon

댓글을 달아 주세요

2019.11.15 05:06

dtype Development/Python



 

 

dtype

·       NumPy 배열의 자료형을 지정하거나 만들어진 배열의 자료형을 알고자 사용하는 인자입니다.

·       NumPy 배열은 배열(Array)이므로 ndarray클래스의 데이터는 같은 자료형이어야 합니다.

·       array()함수로 새로운 배열을 만들 때 dtype 인자를 생략하면 주어진 데이터를 저장할 수 있는 자료형을 추론하여 자동 지정됩니다.

·       array()함수로 새로운 배열을 만들 때 자료형을 명시적으로 지정하려면 dtype 인자로 자료형에 해당하는 접두사와  접두사뒤에 바이트 수 혹은 글자 수를 의미하는 숫자로 자료형타입을 지정하면 됩니다.

 

 

x = np.array(data, dtype='자료형접두사숫자')

x.dtype

 

 

인자

설명

data

저장할 데이터 배열 소스

dtype

데이터 타입을 지정합니다.

바이트수나 문자에 해당하는 숫자를 생략하면 운영체제에 따라 적절한 크기로 할당되어집니다.

 

dtype 접두사

설명

b

불리언(Boolean)

 

b #참 혹은 거짓

i

정수(Integer)

 

i8 # 8바이트(64비트) 정수

u

부호 없는 정수 (Unsigned Integer)

 

u8 # 8바이트(64비트) 정수

f

부동소수점(Float)

 

f8 # 8바이트(64비트) 부동소수점 실수

c

복소부동소수점

 

c16 # 16바이트(128비트)

O

객체(Object)

 

0 #객체에 대한 포인터

S

바이트 문자열(String)

 

S24 # 24 문자열

U

유니코드 문자열(Unicode)

 

U24 # 24 유니코드 글자

 

 


'Development > Python' 카테고리의 다른 글

클래스 정의  (0) 08:00:22
dtype  (0) 2019.11.15
AttributeError: module 'xxx' has no attribute 'xxx'  (0) 2019.11.14
2002년 한일월드컵 기간의 기온 공공데이터 가져오기  (0) 2019.11.14
행/열 합계 - sum()  (0) 2019.11.13
교환 법칙과 분배 법칙  (0) 2019.11.12
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

오류 메시지

AttributeError: module 'scipy' has no attribute 'misc'

 

 

 

 

해결 방법

하위패키지 모듈을 직접 import 사용하시기 바랍니다.

 

pydev Error

 

jupyter OK

import scipy as sp

 

img_gray = sp.misc.face(gray=True)

img_gray.shape

  

pydev Error

 

jupyter OK

import scipy

 

img_gray = scipy.misc.face(gray=True)

img_gray.shape

pydev OK

 

jupyter OK

import scipy.misc

 

img_gray = scipy.misc.face(gray=True)

print(img_gray.shape)

# (768, 1024)

 

 


'Development > Python' 카테고리의 다른 글

클래스 정의  (0) 08:00:22
dtype  (0) 2019.11.15
AttributeError: module 'xxx' has no attribute 'xxx'  (0) 2019.11.14
2002년 한일월드컵 기간의 기온 공공데이터 가져오기  (0) 2019.11.14
행/열 합계 - sum()  (0) 2019.11.13
교환 법칙과 분배 법칙  (0) 2019.11.12
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

2002 한일월드컵 기간의 기온 공공데이터 가져오기

지역별 기온 데이터 내려받아 사용 있습니다.

 

 


 

 

기상자료개방포털 홈페이지에 접속

https://data.kma.go.kr/


 

 

상단 메뉴에서 [기후통계분석] >> [기후분석]


 

 

"조건별통계" 페이지가 나오며 다야한 옵션을 통해 기온 정보를 알고 싶은 지역과 기간을 설정합니다.

 

한일 월드컵이 열린 20026 1일부터 6 30일까지 한 달간의 기온 정보를 조회합니다.

 

분류

지상

지역/지점

서울

요소 

기온

기간

     2002 ~   2002

조건

  0606

  01 ~ 31

 


 

하단의 [검색] 버튼 클릭


 

 

조건에 맞게 검색된 데이터가 그래프와 표형태로 보여집니다.


 

 

 

그래프 밑에 있고 우측 상단에 있는 [CSV다운로드] 버튼 클릭


 

 


 

 

 

직접 다운로드 

extremum_200206010631.csv




'Development > Python' 카테고리의 다른 글

dtype  (0) 2019.11.15
AttributeError: module 'xxx' has no attribute 'xxx'  (0) 2019.11.14
2002년 한일월드컵 기간의 기온 공공데이터 가져오기  (0) 2019.11.14
행/열 합계 - sum()  (0) 2019.11.13
교환 법칙과 분배 법칙  (0) 2019.11.12
예외 처리 try 구문  (0) 2019.11.11
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

/ 합계

 

함수

설명

sum(axis=0)

axis인수의 디폴트 값이 0이므로 axis인수를 생략할 있습니다.


axis

설명

0

디폴트

합계

1

합계

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요




 

 

교환 법칙과 분배 법칙

·       행렬의 교환 법칙과 분배 법칙

·       전치 연산에서의 분배 법칙

 

A , B, C 아래와 같을때 "교환 법칙과 분배 법칙" 확인해봅니다.






 

 

행렬의 교환 법칙과 분배 법칙

행렬의 곱셈은 곱하는 행렬의 순서를 바꾸는 교환 법칙이 성립하지 않습니다. 그러나 덧셈에 대한 분배 법칙은 성립합니다.

 

법칙

표현식

교환 법칙 불가

AB BA

덧셈에 대한 분배 법칙 성립

A(B+C) = AB+AC

덧셈에 대한 분배 법칙 성립

(A+B)C = AC+BC

 

 

 



 

 

전치 연산에서의 분배 법칙

·       전치 연산도 덧셈/뺄셈에 대해 분배 법칙이 성립합니다.

·       전치 연산과 곱셈의 경우에는 분배 법칙이 성립하기는 하지만 전치 연산이 분배되면서 곱셈의 순서가 바뀝니다.

 

법칙

표현식

덧셈/뺄셈에 대해 분배 법칙 성립

(A+C)T = ATBT

곱셈에 대한 분배 법칙 성립

(AB)T = BTAT

곱셈에 대한 분배 법칙 성립

(ABC)T = CTBTAT

 

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

 

예외 처리 try 구문

try:

    <예외 발생가능성이 있는 문장>

except <예외 종류> :

    <예외 처리 문장>

except (예외 1, 예외 2):

    <예외 처리 문장>

except 예외 as 인자:

    <예외 처리 문장>

except :

 

else:

    <예외가 발생하지 않은 경우, 수행할 문장>

finally:

    <예외 발생 유무에 상관없이 try 블록 이후 수행할 문장>

 


 

 

 

 

 

 

 

try ~ except ~ else

·         try 블럭 내의 어느 문장에서 에러가 발생하면, except 문으로 이동하고 예외 처리를 있습니다.

·         else절은 예외가 발생하지 않은 경우에 실행되며 반드시 except 바로 다음에 위치해야 합니다.

 

·         except 뒤에 아무것도 쓰지 않았으면 어떤 에러이든 발생하면 해당 except 블럭을 수행하라는 의미입니다.

·         except 여러 개인 경우는 범위가 보다 좁은 에러타입을 앞에 쓰고 보다 일반적이고 포괄적인 에러타입을 뒤에 작성해 주어야 순차적으로 에러를 캐취할 있습니다.

 

try:

    ...

except :

    # 예외처리

else:

    ...

finally:

    ...

 

여러개의 Exception들을 동일한 except 블록으로 처리하고자 경우 발생 Expception들을 하나의 except 으로 묶어주면 됩니다.

try:

    ...

except (예외 1, 예외 2):

    # 예외처리

else:

    ...

finally:

    ...

 

 

 

 

 

 

try ~ finally

·         try문에는 finally절을 사용할 있다.

·         finally절은 try 수행 도중 예외 발생 여부에 상관없이 항상 수행되어 지는 부분입니다.

·         , finally 블럭은 try 블럭이 정상적으로 실행되든, 에러가 발생하여 except 블럭이 실행되든 상관없이 항상 마지막에 실행됩니다.

·         보통 finally절은 사용한 자원의 리소스를 정리(close)하기위해 사용되어집니다.

 

 

아래와 같은 구조인 경우, finally 생략 불가

try:

<예외 발생 가능성이 있는 문장>

finally:

<예외와 관계없이, 항상 수행되어야 문장>

 

 



'Development > Python' 카테고리의 다른 글

행/열 합계 - sum()  (0) 2019.11.13
교환 법칙과 분배 법칙  (0) 2019.11.12
예외 처리 try 구문  (0) 2019.11.11
지도 API 사용 방법  (0) 2019.11.10
실제 행렬을 사용한 곱셈의 예  (0) 2019.11.09
멤버 메서드 종류  (0) 2019.11.09
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

지도 API 사용 방법

지도 API 사용 방법들을 확인할 있습니다.

 

https://compas.lh.or.kr/web/lhcF090601.do


 


'Development > Python' 카테고리의 다른 글

교환 법칙과 분배 법칙  (0) 2019.11.12
예외 처리 try 구문  (0) 2019.11.11
지도 API 사용 방법  (0) 2019.11.10
실제 행렬을 사용한 곱셈의 예  (0) 2019.11.09
멤버 메서드 종류  (0) 2019.11.09
self  (0) 2019.11.08
Posted by codedragon codedragon

댓글을 달아 주세요



 

실제 행렬을 사용한 곱셈의 예

 

A 행렬과 B 행렬을 곱한 결과가 C 행렬이 됩니다.

 

 


'Development > Python' 카테고리의 다른 글

예외 처리 try 구문  (0) 2019.11.11
지도 API 사용 방법  (0) 2019.11.10
실제 행렬을 사용한 곱셈의 예  (0) 2019.11.09
멤버 메서드 종류  (0) 2019.11.09
self  (0) 2019.11.08
else 블록  (0) 2019.11.07
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

멤버 메서드 종류

파이썬에서 메서드는 크게 인스턴스 메서드(instance method), 정적 메서드(static method), 클래스 메서드(class method) 있습니다.

·         인스턴스 메서드(instance method)

·         정적 메서드(static method)

·         클래스 메서드(class method)

 

 

 

 

 

인스턴스 메서드(instance method)

 

·         일반 함수와 다른 점은 첫번째 인수로 self 사용합니다.  (관례적으로 self라는 이름을 사용합니다)

·         self 인스턴스 객체 자신의 레퍼런스를 지니고 있습니다. 인스턴스들은 self 이용하여 자신의 이름 공간에 접근합니다.

·         가장 흔히 쓰이는 인스턴스 메서드는 인스턴스 변수에 엑세스할 있도록 메서드의 첫번째 파라미터에 항상 객체 자신을 의미하는 "self"라는 파라미터를 갖습니다.

 

·         인스턴스 메서드는 여러 파라미터를 가질 있지만, 첫번째 파라미터는 항상 self 갖습니다.

 

·         인스턴스 메서드는 "객체변수.메서드명()" 같이 호출할 있습니다.

 

class MyClass:

    def set(self, v):

        self.value = v

    def get(self):

        return self.value

 

 

 

 

 

정적 메서드(static method)

·         인스턴스 객체와 무관하게 클래스 이름 공간에 존재하는 메소드로서 클래스 이름을 이용하여 직접 호출할 있는 메소드입니다.

·         인스턴스 객체를 참조하는 self 인자가 필요하지 않습니다.

·         인스턴스 메서드가 객체의 인스턴스 필드를 self 통해 엑세스할 있는 반면, 정적 메서드는 이러한 self 파라미터를 갖지 않고 인스턴스 변수에 엑세스할 없습니다. 따라서, 정적 메서드는 보통 객체 필드와 독립적이지만 로직상 클래스내에 포함되는 메서드에 사용됩니다.

·         정적 메소드는 해당 클래스의 인스턴스를 통해서도 호출 가능하지만 권장하지 않습니다.

·         정적 메서드는 메서드 앞에 @staticmethod 라는 장식자(Decorator) 표시하여 해당 메서드가 정적 메서드임을 표시합니다.

 

 

정적(static) 메서드 형식

<호출할 메소드 이름> = staticmethod(클래스내 정의한 메소드 이름)

@staticmethod

def 정적메소드명(인자1, 인자2, ...): # self 키워드가 없다.

 

 

 

 

 

 

 

 

클래스 메서드(class method)

·         클래스 영역의 데이터에 직접 접근할 있는 메소드입니다.

·         인스턴스 객체와 무관하게 클래스 이름 공간에 존재하는 메소드로서 클래스 이름을 이용하여 호출하며 인수로 클래스 객체를 자동으로 받는 메소드입니다.

·         암시적으로 인자로 클래스 객체가 전달됩니다.

·         해당 클래스의 인스턴스를 통해서도 호출 가능합니다.

·         클래스 메서드는 메서드 앞에 @classmethod 라는장식자(Decorator) 표시하여 해당 메서드가 클래스 메서드임을 표시합니다.

 

 

 

클래스 메서드와 정적 메서드

·         클래스 메서드는 정적 메서드와 비슷한데, 객체 인스턴스를 의미하는 self 대신 cls 라는 클래스를 의미하는 파라미터를 전달받습니다. 정적 메서드는 cls 파라미터를 전달받지 않습니다. 클래스 메서드는 이렇게 전달받은 cls 파라미터를 통해 클래스 변수 등을 엑세스할 있습니다.

·         일반적으로 인스턴스 데이터를 엑세스 필요가 없는 경우 클래스 메서드나 정적 메서드를 사용하는데, 이때 보통 클래스 변수를 엑세스할 필요가 있을 때는 클래스 메서드를, 이를 엑세스할 필요가 없을 때는 정적 메서드를 사용합니다.

 

클래스 메소드

정적 메소드

@classmethod

cls

@staticmethod

인스턴스 데이터를 엑세스 필요가 없는 경우 사용

인스턴스 데이터를 엑세스 필요가 없는 경우 사용

클래스 변수를 엑세스할 필요가 있는 경우

클래스 변수를 엑세스할 필요가 없는 경우

 

 

cls

self

클래스 자체

객체 자신

 

 

 

 

클래스(class) 메서드 형식

<호출할 메소드 이름> = classmethod(클래스내 정의한 메소드 이름)

@classmethod

def 클래스메소드명(self, 인자1, ...):

 

 


'Development > Python' 카테고리의 다른 글

지도 API 사용 방법  (0) 2019.11.10
실제 행렬을 사용한 곱셈의 예  (0) 2019.11.09
멤버 메서드 종류  (0) 2019.11.09
self  (0) 2019.11.08
else 블록  (0) 2019.11.07
plt.imshow()  (0) 2019.11.06
Posted by codedragon codedragon

댓글을 달아 주세요