파이썬으로 정확히 무엇을 할 수 있습니까? 다음은 Python의 3 가지 주요 애플리케이션입니다.

Python을 배우고 싶거나 최근에 배우기 시작했다면 다음과 같이 자문 해보십시오.

"Python을 정확히 무엇에 사용할 수 있습니까?"

Python 용 애플리케이션이 너무 많기 때문에 대답하기 어려운 질문입니다.

그러나 시간이 지남에 따라 Python을위한 3 가지 주요 응용 프로그램이 있음을 확인했습니다.

  • 웹 개발
  • 데이터 과학-머신 러닝, 데이터 분석 및 데이터 시각화 포함
  • 스크립팅

차례로 그들 각각에 대해 이야기합시다.

웹 개발

DjangoFlask 와 같은 Python을 기반으로하는 웹 프레임 워크 는 최근 웹 개발에 매우 ​​인기가 있습니다.

이러한 웹 프레임 워크는 Python에서 서버 측 코드 (백엔드 코드)를 만드는 데 도움이됩니다. 이것이 사용자의 장치 및 브라우저 (프런트 엔드 코드)와 달리 서버에서 실행되는 코드입니다. 백엔드 코드와 프런트 엔드 코드의 차이점에 익숙하지 않은 경우 아래의 각주를 참조하십시오.

하지만 잠깐, 왜 웹 프레임 워크가 필요한가요?

웹 프레임 워크를 사용하면 일반적인 백엔드 로직을 더 쉽게 구축 할 수 있기 때문입니다. 여기에는 다양한 URL을 Python 코드 청크에 매핑하고, 데이터베이스를 처리하고, 사용자가 브라우저에서 볼 수있는 HTML 파일 생성이 포함됩니다.

어떤 Python 웹 프레임 워크를 사용해야합니까?

Django와 Flask는 가장 인기있는 두 가지 Python 웹 프레임 워크입니다. 방금 시작하는 경우 그중 하나를 사용하는 것이 좋습니다.

Django와 Flask의 차이점은 무엇입니까?

Gareth Dwyer의이 주제에 대한 훌륭한 기사가 있으므로 여기에서 인용하겠습니다.

테>

주요 대조 :

  • Flask는 단순성, 유연성 및 세분화 된 제어를 제공합니다. 의견이 없습니다 (당신이 원하는 것을 구현할 방법을 결정할 수 있습니다).
  • Django는 모든 것이 포함 된 경험을 제공합니다. 관리자 패널, 데이터베이스 인터페이스, ORM [객체 관계형 매핑] 및 앱과 프로젝트의 디렉토리 구조를 즉시 사용할 수 있습니다.

다음을 선택해야합니다.

  • 경험과 학습 기회에 초점을 맞추고 있거나 사용할 구성 요소 (예 : 사용할 데이터베이스 및 상호 작용 방법)에 대해 더 많은 제어가 필요한 경우 Flask.
  • Django, 최종 제품에 집중한다면. 특히 뉴스 사이트, e- 스토어 또는 블로그와 같은 간단한 응용 프로그램에서 작업하고 있고 항상 작업을 수행하는 하나의 확실한 방법을 원할 경우.

테>

즉, 초보자 인 경우 처리 할 구성 요소가 적기 때문에 Flask가 더 나은 선택 일 것입니다. 또한 더 많은 사용자 정의를 원할 경우 Flask가 더 나은 선택입니다.

반면에 간단한 것을 만들고자한다면 Django는 아마 당신이 더 빨리 갈 수 있도록 해줄 것입니다.

이제 Django를 배우고 싶다면 Django for Beginners라는 책을 추천합니다. 여기에서 찾을 수 있습니다.

여기에서 해당 책의 무료 샘플 장을 찾을 수도 있습니다.

좋아, 다음 주제로 가자!

데이터 과학-머신 러닝, 데이터 분석 및 데이터 시각화 포함

먼저 머신 러닝 무엇인지 살펴 보겠습니다 .

기계 학습이 무엇인지 설명하는 가장 좋은 방법은 간단한 예를 들어 보는 것입니다.

그림에있는 내용을 자동으로 감지하는 프로그램을 개발하고 싶다고 가정 해 보겠습니다.

따라서 아래 그림 (그림 1)이 주어지면 프로그램이 개라는 것을 인식하도록해야합니다.

Original text


아래의 다른 항목 (그림 2)이 주어지면 프로그램이 테이블이라는 것을 인식하도록합니다.

당신은 그렇게 말할 수있는 코드를 작성할 수 있다고 말할 수 있습니다. 예를 들어, 사진에 밝은 갈색 픽셀이 많으면 개라고 말할 수 있습니다.

또는 사진에서 가장자리를 감지하는 방법을 알아낼 수 있습니다. 그러면 직선 모서리가 많으면 테이블이라고 말할 수 있습니다.

그러나 이러한 종류의 접근 방식은 매우 빠르게 까다로워집니다. 사진에 갈색 머리가없는 흰 개가 있다면? 그림에 테이블의 둥근 부분 만 표시되면 어떻게됩니까?

이것이 머신 러닝이 들어오는 곳입니다.

기계 학습은 일반적으로 주어진 입력에서 패턴을 자동으로 감지하는 알고리즘을 구현합니다.

예를 들어 기계 학습 알고리즘에 개 사진 1,000 장과 테이블 사진 1,000 장을 줄 수 있습니다. 그런 다음 개와 테이블의 차이점을 학습합니다. 개나 탁자의 새 사진을 주면 어떤 사진인지 인식 할 수 있습니다.

나는 이것이 아기가 새로운 것을 배우는 방법과 다소 비슷하다고 생각합니다. 아기는 하나는 개처럼 보이고 다른 하나는 탁자처럼 생겼다는 것을 어떻게 알 수 있습니까? 아마도 많은 예에서 나온 것 같습니다.

아기에게 "모피가 옅은 갈색 머리가 있다면 아마도 개일 것입니다."라고 명시 적으로 말하지 않을 것입니다.

당신은 아마“그건 개야. 이것은 또한 개입니다. 그리고 이것은 테이블입니다. 그것도 테이블입니다.”

기계 학습 알고리즘은 거의 동일한 방식으로 작동합니다.

동일한 아이디어를 다음에 적용 할 수 있습니다.

  • 추천 시스템 (YouTube, Amazon, Netflix 등)
  • 얼굴 인식
  • 음성 인식

다른 응용 프로그램 중에서.

들어 보셨을 수있는 인기있는 기계 학습 알고리즘은 다음과 같습니다.

  • 신경망
  • 딥 러닝
  • 서포트 벡터 머신
  • 랜덤 포레스트

위의 알고리즘 중 하나를 사용하여 앞에서 설명한 그림 레이블 문제를 해결할 수 있습니다.

기계 학습을위한 Python

Python 용으로 널리 사용되는 기계 학습 라이브러리 및 프레임 워크가 있습니다.

가장 인기있는 두 가지는 scikit-learnTensorFlow 입니다.

  • scikit-learn에는 더 많이 사용되는 기계 학습 알고리즘이 내장되어 있습니다. 위에서 몇 가지를 언급했습니다.
  • TensorFlow는 커스텀 머신 러닝 알고리즘을 구축 할 수있는 저수준 라이브러리에 가깝습니다.

기계 학습 프로젝트를 막 시작하는 경우 먼저 scikit-learn으로 시작하는 것이 좋습니다. 효율성 문제가 발생하기 시작하면 TensorFlow를 살펴볼 것입니다.

기계 학습을 어떻게 배워야합니까?

기계 학습 기초를 배우려면 Stanford 또는 Caltech의 기계 학습 과정을 추천합니다.

해당 과정의 일부 자료를 이해하려면 미적분 및 선형 대수에 대한 기본 지식이 필요합니다.

그런 다음 Kaggle과 함께 이러한 과정 중 하나에서 배운 것을 연습합니다. 사람들이 주어진 문제에 대해 최고의 기계 학습 알고리즘을 구축하기 위해 경쟁하는 웹 사이트입니다. 초보자를위한 멋진 튜토리얼도 있습니다.

데이터 분석 및 데이터 시각화는 어떻습니까?

이것이 어떻게 생겼는지 이해하는 데 도움이되도록 여기에 간단한 예를 들어 보겠습니다.

온라인에서 일부 제품을 판매하는 회사에서 일한다고 가정 해 보겠습니다.

그런 다음 데이터 분석가는 이와 같은 막대 그래프를 그릴 수 있습니다.

이 그래프를 통해 남성은이 제품을 400 개 이상 구매했고 여성은 이번 일요일에이 제품을 약 350 개 구매했음을 알 수 있습니다.

데이터 분석가는이 차이에 대한 몇 가지 가능한 설명을 제시 할 수 있습니다.

한 가지 분명한 설명은이 제품이 여성보다 남성에게 더 인기가 있다는 것입니다. 또 다른 가능한 설명은 표본 크기가 너무 작고이 차이가 우연히 발생한 것일 수 있습니다. 그리고 또 다른 가능한 설명은 남성이 어떤 이유로 일요일에만이 제품을 더 많이 사는 경향이 있다는 것입니다.

이 설명 중 어느 것이 올바른지 이해하기 위해 이와 같은 다른 그래프를 그릴 수 있습니다.

일요일에 대한 데이터 만 표시하는 대신 일주일 동안의 데이터를보고 있습니다. 보시다시피이 그래프를 보면이 차이가 날마다 상당히 일관 적이라는 것을 알 수 있습니다.

이 작은 분석을 통해이 차이에 대한 가장 설득력있는 설명은이 제품이 여성보다 남성에게 더 인기가 있다는 것입니다.

반면에 이와 같은 그래프가 대신 표시되면 어떻게 될까요?

그렇다면 일요일의 차이점은 무엇입니까?

아마도 남성은 어떤 이유로 일요일에만이 제품을 더 많이 구입하는 경향이 있다고 말할 수 있습니다. 아니면 남자들이 일요일에 더 많이 구입 한 것은 우연의 일치 일 수도 있습니다.

따라서 이것은 실제 세계에서 데이터 분석이 어떻게 보일지에 대한 단순화 된 예입니다.

제가 Google과 Microsoft에서 일할 때했던 데이터 분석 작업은이 예제와 매우 유사했습니다. 단지 더 복잡 할뿐입니다. 저는 실제로 이런 종류의 분석을 위해 Google에서 Python을 사용했고 Microsoft에서는 JavaScript를 사용했습니다.

두 회사 모두에서 SQL을 사용하여 데이터베이스에서 데이터를 가져 왔습니다. 그런 다음 Python 및 Matplotlib (Google) 또는 JavaScript 및 D3.js (Microsoft)를 사용하여이 데이터를 시각화하고 분석합니다.

Python을 사용한 데이터 분석 / 시각화

데이터 시각화를위한 가장 인기있는 라이브러리 중 하나는 Matplotlib입니다.

다음과 같은 이유로 시작하기에 좋은 라이브러리입니다.

  • 시작하기 쉽습니다.
  • seaborn과 같은 다른 라이브러리도이를 기반으로합니다. 따라서 Matplotlib를 배우면 나중에 이러한 다른 라이브러리를 배우는 데 도움이됩니다.

Python으로 데이터 분석 / 시각화를 어떻게 배워야합니까?

먼저 데이터 분석 및 시각화의 기본 사항을 배워야합니다. 이 온라인에 대한 좋은 리소스를 찾았을 때 아무것도 찾을 수 없었습니다. 그래서 결국이 주제에 대한 YouTube 동영상을 만들었습니다.

또한 Pluralsight에 대한이 주제에 대한 전체 과정을 마쳤으며 10 일 무료 평가판에 등록하면 무료로 수강 할 수 있습니다.

둘 다 추천합니다.

데이터 분석 및 시각화의 기본 사항을 학습 한 후 Coursera 및 Khan Academy와 같은 웹 사이트에서 통계의 기본 사항을 학습하는 것도 도움이 될 것입니다.

스크립팅

스크립팅이란 무엇입니까?

스크립팅은 일반적으로 간단한 작업을 자동화하도록 설계된 작은 프로그램을 작성하는 것을 말합니다.

자, 여기서 제 개인적인 경험을 예로 들어 보겠습니다.

저는 이메일 지원 시스템이있는 일본의 작은 스타트 업에서 일했습니다. 고객이 이메일로 보내 주신 질문에 응답하는 시스템이었습니다.

그곳에서 일할 때 특정 키워드가 포함 된 이메일의 수를 세어 수신 한 이메일을 분석 할 수있었습니다.

수동으로 할 수도 있었지만 대신이 작업을 자동화하는 간단한 프로그램 / 간단한 스크립트를 작성했습니다.

사실 그 당시에는 Ruby를 사용했지만 Python은 이러한 작업에 적합한 언어이기도합니다. Python은 주로 구문이 비교적 단순하고 작성하기 쉽기 때문에 이러한 유형의 작업에 적합합니다. 작은 것을 작성하고 테스트하는 것도 빠릅니다.

임베디드 애플리케이션은 어떻습니까?

저는 임베디드 애플리케이션의 전문가는 아니지만 Python이 Rasberry Pi와 함께 작동한다는 것을 알고 있습니다. 하드웨어 애호가들 사이에서 인기있는 애플리케이션 인 것 같습니다.

게임은 어떻습니까?

PyGame이라는 라이브러리를 사용하여 게임을 개발할 수는 있지만 가장 인기있는 게임 엔진은 아닙니다. 취미 프로젝트를 만드는 데 사용할 수는 있지만 게임 개발에 대해 진지하게 생각한다면 개인적으로 선택하지 않을 것입니다.

오히려 가장 인기있는 게임 엔진 중 하나 인 C #으로 Unity를 시작하는 것이 좋습니다. Mac, Windows, iOS 및 Android를 포함한 다양한 플랫폼 용 게임을 빌드 할 수 있습니다.

데스크탑 애플리케이션은 어떻습니까?

Tkinter를 사용하여 Python으로 만들 수 있지만 가장 인기있는 선택은 아닌 것 같습니다.

대신 Java, C # 및 C ++와 같은 언어가 더 많이 사용되는 것 같습니다.

최근에 일부 회사는 JavaScript를 사용하여 데스크톱 응용 프로그램도 만들기 시작했습니다.

예를 들어 Slack의 데스크톱 앱은 Electron이라는 이름으로 빌드되었습니다. JavaScript로 데스크톱 애플리케이션을 구축 할 수 있습니다.

개인적으로 데스크톱 애플리케이션을 구축하는 경우 JavaScript 옵션을 사용합니다. 웹 버전이있는 경우 일부 코드를 재사용 할 수 있습니다.

그러나 저도 데스크톱 응용 프로그램 전문가가 아니므로 동의하지 않거나 동의하는 경우 의견으로 알려주십시오.

Python 3 또는 Python 2?

더 현대적이고이 시점에서 더 인기있는 옵션 인 Python 3을 추천합니다.

각주 : 백엔드 코드와 프런트 엔드 코드에 대한 참고 사항 (용어에 익숙하지 않은 경우) :

Instagram과 같은 것을 만들고 싶다고 가정 해 보겠습니다.

그런 다음 지원하려는 각 유형의 장치에 대한 프런트 엔드 코드를 만들어야합니다.

예를 들어 다음을 사용할 수 있습니다.

  • iOS 용 Swift
  • Android 용 Java
  • 웹 브라우저 용 JavaScript

각 코드 세트는 각 유형의 장치 / 브라우저에서 실행됩니다. 이것은 앱의 레이아웃, 버튼을 클릭했을 때의 모양 등을 결정하는 코드 세트입니다.

하지만 여전히 사용자의 정보와 사진을 저장할 수있는 기능이 필요합니다. 각 사용자의 팔로어가 자신의 사진을 볼 수 있도록 사용자의 장치뿐만 아니라 서버에 저장하는 것이 좋습니다.

이것이 백엔드 코드 / 서버 측 코드가 들어오는 곳입니다. 다음과 같은 작업을 수행하려면 백엔드 코드를 작성해야합니다.

  • 누가 팔로우하는지 추적
  • 저장 공간을 많이 차지하지 않도록 사진 압축
  • 검색 기능 에서 각 사용자에게 사진 및 새 계정 추천

따라서 이것이 백엔드 코드와 프런트 엔드 코드의 차이점입니다.

그건 그렇고, 파이썬은 백엔드 / 서버 측 코드를 작성하는 유일한 좋은 선택은 아닙니다. JavaScript를 기반으로하는 Node.js를 포함하여 다른 많은 인기있는 선택 사항이 있습니다.

이 기사가 마음에 드 셨나요? 그런 다음 내 YouTube 채널도 좋아할 것입니다.

구독자가 440,000 명 이상인 CS Dojo라는 프로그래밍 교육 유튜브 채널이 있는데이 기사와 같은 콘텐츠를 더 많이 제작하고 있습니다.

예를 들어 다음 동영상을 좋아할 수 있습니다.

어쨌든 내 기사를 읽어 주셔서 감사합니다!