Python 벡터(vector)

2020/Python 2019. 12. 10. 18:25
반응형

  파이썬으로 벡터나 행렬을 나타내려면 넘파이(NumPy)라는 라이브러리를 통해 기능을 확장해야 합니다. 

  파이썬에서는 다양한 라이브러리가 개발되고 있으며, import로 간단히 가져올 수 있씁니다.

  행렬 연산을 위한 라이브러리인 넘파이는 다음과 같이 import 하면 됩니다.

뒤에 as np는 별명 같은 걸로 관습적으로 np로 정의하는 경우가 많습니다.

 

자 이제 벡터(1차원 배열)은 np.array(list 형)으로 정의 하겠습니다.

 

벡터와 벡터의 더하기 였습니다.

  type(x)를 입력하면 x가 numpy.ndarray형인 것을 알 수 있습니다.

 

인덱스의 값을 참조하려면 list형과 마찬가지로 대괄호를 사용하면 됩니다.

x[0]

수정 또한 x[인덱스] = 값을 사용합니다.

x[0] = 100

 

### ndarray 형의 주의점

  ndarray 형을 사용할 때 아주 중요한 사실이 있습니다. ndarray 형의 내용을 복사하려면 일반 변수처럼 c=d를 사용하는 것이 아니라 c= d.copy()를 사용해야 합니다. 단순히 c=d처럼 사용하게 되면 내용이 저장된 곳의 주소가 전달됩니다.

c=d를 입력한 후 c의 내용을 변경하면 그 변경사항이 d에도 반영되어 버립니다.

 

반응형

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

Jupyter Notebook slicing  (0) 2019.12.11
Python 행렬  (0) 2019.12.11
Jupyter if문, for문  (0) 2019.12.10
Python tuple  (0) 2019.12.10
Jupyter Notebook List형  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,

Jupyter if문, for문

2020/Python 2019. 12. 10. 18:15
반응형

  프로그램을 조건에 따라 나누어 실행시키려면 if문을 사용해야 하죠?

  다음과 같이 첫 행에서 x값으로 15를 대입하고, if의 x>10이라는 조건은 True입니다.

  이제 for문을 사용해 봅시다.

  for문은 for "변수" in "list 형":  과 같은 형태입니다.

  list에 포함된 요소의 수만큼 for문 다음의 들여 쓰기 된 행이 실행됩니다. 반복할 때마다 list의 요소가 차례대로 변수에 드러갑니다. list형 대신 tuple 형, range형을 사용할 수도 있습니다. 또한 list형의 요소값을 각각 2배로도 만들 수 있습니다.

  enumerate를 사용해보기

  파이썬에서는 enumerate을 사용하여 앞에서 구현한 기능보다 조금도 예쁘게 나타낼 수 있습니다.

반응형

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

Python 행렬  (0) 2019.12.11
Python 벡터(vector)  (0) 2019.12.10
Python tuple  (0) 2019.12.10
Jupyter Notebook List형  (0) 2019.12.10
Jupyter Notebook 자료형  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,

Python tuple

2020/Python 2019. 12. 10. 17:59
반응형

  배열을 나타내는 형태로 list형 이외에 tuble(튜플) 형이라는 배열 변수가 있습니다.

  tuple은 list와는 달리 요소를 수정할 수 없습니다. tuple 형은(1,2,3)과 같이 괄호( )를 사용하여 배열을 나타냅니다.

 

  참조를 할때는 괄호( ) 대신 list형 처럼 대괄호[ ] 를 사용하는 것에 주의하세요. tuple 형은 수정할 수 없기 때문에 a[1]=2 라는 명령을 내리면 오류가 발생합니다. 그렇다면, list와 tuple은 서로 어떤 경우에 구분해서 사용될까요?

  나중에 설명할 '함수'의 출력이 여러개인 경우 리턴할때 tuple로 정리됩니다.

 

  (1,2)는 tuple이지만 (1)은?? 튜플이 아닙니다. ()는 연산의 순서를 나타내는 일반적인 괄호로 간주합니다. 길이가 1인 tuple은(1,)과 같이 쉼표( , ) 를 붙입니다.

 

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

  여러 데이터를 하나의 단위로취급하고 싶은 경우, 즉 배열 변수를 사용하고 싶은 경우에는 list형을 사용합니다.

  list는 리스트명[]을 사용하여 나타내고 아래와 같이 입력하면 list가 정의됩니다.

즉, x는 int형으로 구성된 list형이라고 이해할 수 있습니다. list형은 str형으로도 만들 수 있습니다.

list형은 2차원 배열 형태도로 만들 수 있습니다.

튜플과는 다르게 리스트는 수정도 가능합니다. 리스트명[인덱스]=수치

list의 길이

  연속된 정수 데이터의 작성 range(시작숫자삭제#끝숫자+1)

  range형은 list 형과 같은 방법으로 요소를 참ㄴ조할 수 있지만 요소를 수정할 수 없습니다. 예를들어, range형에 대해 y[2] = 2 명을 내리면 오류가 발생합니다.

  range형은 list함수를 사용하여 요소를 수정할 수 있는 list형으로 변환할 수 있습니다.

시작 숫자를 생략하고 rnage(끝숫자+1)을 입력하면 0부터 시작되는 수열이 만들어 집니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형
자료형 사용 예

자료형의 의미

int형 a =1  정수
float 형  a = 1.5 실수
str 형 a="learning" 또는 b="abc" 문자열
bool형 True 또는 False 참과 거짓
list형 a=[1,2,3] 배열
tuple형 a=(1,2,3) 또는 b=(2,) 배열(수정 불가능)
ndarray형 a=np.array([1,2,3]) 행렬

Type으로 자료형을 알아보겠습니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

  케라스는 파이썬으로 작성된 오픈소스 신경망 라이브러리입니다.

  텐서플로(TensorFlow)는 다양한 작업에 데이터 흐름 프로그래밍을 하는 오픈소스 라이브러리 입니다. 신경망과 같은 머신러닝 응용 프로그램 개발에도 사용됩니다.

 

  우선 시작 메뉴에서 Anaconda3 -> Anaconda Promplt 에서 마우스 오른쪽 버튼클 클릭하고

자세히 -> 관리자권한으로 실행을 클릭해주시면 명령 프롬프트가 열립니다.

  'CD 폴도명'명령으로 작업 폴더오 이동한 뒤, 다음과 같이 pip install명령으로 텐서플로를 설치합니다.

  이동 한 뒤 pip install tensorflow를 입력해 주시면 설치가 시작됩니다.

그 후 케라스를 설치하겠습니다

  pip install keras를 입력해 주시면 됩니다.

  그 후 주피터 노트북으로 돌아가서, 케라스가 설치되었음을 확인하기 위해, 셀에 입력해 보겠습니다.

 

반응형

'2020 > Machine Learning Deep Learning' 카테고리의 다른 글

JupyterNotebook 그래프 그리기  (0) 2019.12.12
Tensorflow 분류하기  (0) 2019.12.09
Tensorflow로 BMI측정  (0) 2019.12.09
Tensorflow basic  (0) 2019.12.06
SKLearn 분류(IRIS) scikit-learn IRIS  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

  HttpSessionListener를 이용해 웹 페이지 로그인 시 접속자수와 모든 접속자 ID를 표시해 주는 기능을 구현하겠습니다.

 

Login2.html

  첫번째 서블릿인 LoginTest 클래스 파일에는 setAttribute()를 이용해 loginUser를 세션에 바인딩하면 LoginImpl 클래스 에 구현된 이벤트 핸들러를 이용해 접속자수를 1 증가시킵니다. 그리고 user_list에 접속자 ID를 저장한 다음ServletContext 객체에 바인딩합니다.

LoginTest

 

LogoutTest 서블릿에서는 로그아웃 링크를 클릭하면 접속자 수를 1 감소시키고 user_list에 로그아웃한 접속자 ID를 삭제한 후 다시 user_list를 ServletContext 객체에 바인딩하도록 설정합니다.

LogoutTest

  LoginImpl 클래스는 HttpSessionListener를 구현해 세션 생성과 소멸 시 이벤트를 처리하는 핸들러입니다.

  중요한 것은 LoginImpl에서 구현한 HttpSessionBindingListener와는 다르게 HttpSessionListener는 반드시 리스너를 구현한 이벤트 핸들러를 애너테이션을 이용해서 등록해야 된다는 것입니다.

  리스너를 등록한 이벤트 핸들러를 이용해서 세션을 생성할 때는 SessionCreated()메서드로 이벤트를 처리하고, 세션을 삭제할 때는 sessionDestroyed() 메서드로 이벤트를 처리합니다.

LoginImpl

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP 변환 과정  (0) 2019.12.11
JSP의 등장  (0) 2019.12.10
HttpSessionBindingListener 로그인 접속자 수 표시  (0) 2019.12.10
Servlet Listener API  (0) 2019.12.09
Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,
반응형

HttpSessionBindingListener를 이용해 현재 웹 페이지에 로그인한 접속자수를 알아보는 기능을 구현하겠습니다.

login2.html

LoginTest 클래스를 다음과 같이 작성합니다. LoginImpl loginUser=new LoginImpl(user_id,user_pw)를 실행하여 전송된 ID와 비밀번호를 저장합니다. 또 session.setAttribute("loginUser", loginUser) 세션에 바인딩 시 미리 HttpSessionBinding Listener를 구현한 LoginImpl의 valueBound() 메서드를 호출합니다.

LoginTest

 

 

  LoginImpl 클래스에는 HttpSessionBindingListener를 구현하여 세션에 바인딩 이벤트를 처리하는 이벤트 핸들러를 구현하겠습니다. 세션에 바인딩 시 valueBound()가 호출되어 static 변수인 total_user의 값을 1 증가시킵니다.

LoginImpl

 

서로 다른 종류의 브라우저에서 접속하여 실행 결과를 확인해 보겠습니다. 

첫번째 이미지는 크롬 두번째 이미지는 익스플로러 입니다.

 

github : https://github.com/soulwine-it/Servlet-Scope-URLpattern-Filter-Listener

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP의 등장  (0) 2019.12.10
HttpSessionListener 로그인 접속자수 표시  (0) 2019.12.10
Servlet Listener API  (0) 2019.12.09
Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
Filter API  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,