파이썬 어떻게? 파이썬의 세 가지 주요 응용 프로그램의 방향


당신이 학습을 시작할 준비가있는 경우 Python또는 학습을 시작해야합니다 Python, 당신은 자신을 물어 기꺼이 것입니다 : "내가 사용 Python? 당신이 무엇을 할 수"

많은 응용 프로그램 파이썬 방향이 있기 때문에 아,이 어려운 질문이다. 그러나 시간이 지남에 따라, 파이썬은 세 가지 주요 응용 프로그램의 방향이 발견 :

  • 웹 개발
  • 과학 데이터 - 기계 학습, 데이터 분석 및 데이터 시각화를 포함
  • 스크립트

의 차례로 각각에 대해 얘기하자.

웹 개발

최근에 기초하여 Python(예 : 같은 웹 프레임 워크 DjangoFlask) 웹 개발에서 매우 인기가되었다.

당신이 도움이 웹 프레임 워크 Python에 서버 측 코드 (코드 숨김)를 만듭니다. 이것은 오히려 사용자의 디바이스와 브라우저 (프런트 엔드 코드)보다, 서버에서 실행되는 코드입니다. 프런트 엔드 코드와 백엔드 코드의 차이에 익숙하지 않은 경우, 다음과 같은 각주를 참조하십시오.

나는 웹 프레임 워크를 필요 왜하지만, 기다릴?

웹 프레임 워크는 일반적인 백엔드 로직을 쉽게 구축 할 수 있기 때문이다. 이것은 파이썬 코드 블록, 처리, 데이터베이스에 다른 URL 매핑을 포함하고 생성 사용자가 자신의 브라우저 HTML 파일을 본다.

나는 어떤 파이썬 웹 프레임 워크를 사용 하는가?

Django그리고 Flask가장 인기있는 두 파이썬 웹 프레임 워크이다. 당신이 막 시작하는 경우, 당신이 그들 중 하나 사용하는 것이 좋습니다.

주요 대비 :

Flask그것은 단순한 유연하고 세분화 된 제어를 제공한다. 그것은 (그것을 할 수 있습니다 당신이 그것을 구현하는 방법을 결정하는) 바람직하지 않다. Django모든 포괄적 인 경험을 제공 : 당신이 관리 패널, 데이터베이스 인터페이스, 얻을 수있는 ORM상자 응용 프로그램 및 프로젝트의 디렉토리 구조 [객체 관계 매핑] 및 아웃.

당신이 선택해야합니다 :

Flask당신은 경험과 학습의 기회에 초점을, 또는 구성 요소를 사용하는 동안 더 많은 제어를 원하는 경우 (예하는 데이터베이스로는 사용할 그들과 상호 작용하는 방법)합니다.

Django당신은 최종 제품에 초점을합니다. 당신이 뉴스 사이트, 전자 상점 또는 블로그로 직접 응용 프로그램을 개발하고 특히 경우, 당신은 항상 일을하는 확실한 방법을 갖고 싶어.

당신이 초보자 경우 즉, Flask그것은 더 적은 구성 요소가 해결 될 필요가 있기 때문에 그것은 더 나은 선택이 될 수 있습니다. 더 많은 사용자 정의를 원하는 경우에도, Flask그것은 더 나은 선택이다.

직접 뭔가를 구축하려는 경우 반면에, Django당신이 빨리 도착 할 수 있습니다.

당신이 배우고 싶은 경우에 지금 Django, 나는 "초보자를위한 장고 '라는 책이 좋습니다.

음, 우리는 지금 주제 봐!

과학 데이터 - 기계 학습, 데이터 분석 및 데이터 시각화를 포함

1. 기계 학습

첫째, 기계 학습은 무엇인가의 검토하자

나는 기계 학습을 설명하는 가장 좋은 방법은 당신에게 간단한 예를 제공하는 것입니다 생각합니다. 자동으로 사진의 내용을 감지 할 수있는 프로그램을 개발한다고 가정.

따라서, 다음과 같은 차트 (그림 1), 당신은 개 인 인식하는 프로그램을 원한다.

파이썬 어떻게?  파이썬의 세 가지 주요 응용 프로그램의 방향

또 다른 (도. 2) 아래 감안할 때, 테이블을 프로그램 할 것인지 식별됩니다.

파이썬 어떻게?  파이썬의 세 가지 주요 응용 프로그램의 방향

당신은 물론, 내가이 작업을 수행하는 몇 가지 코드를 작성할 수 있습니다 말할 수 있습니다. 예를 들어, 그림에서 많은 밝은 갈색 픽셀이있는 경우, 우리는 개라고 할 수 있습니다.

또는, 당신은 사진에서 가장자리를 감지하는 방법을 알아낼 수 있습니다. 그런 다음 직선 가장자리의 많은 경우, 다음 테이블입니다 말할 수 있습니다.

그러나이 방법은 신속하게 까다로운된다. 사진이 수행하는 방법에 갈색 머리의 하얀 강아지가없는 경우? 사진은 테이블의 원형 부분이해야 할 유일한 방법을 보여줍니다 경우?

즉 어디 기계 학습입니다.

일반적으로 주어진 입력 모드를위한 기계 학습, 자동 감지 알고리즘을 알고 있습니다.

당신은 개 1,000 사진과 1000 사진 테이블에 기계 학습 알고리즘을 제공 할 수 있습니다. 다음에, 개 및 테이블 사이의 차이를 배울 수 있습니다. 당신이 그것을 개 또는 테이블의 새 그림을 제공하는 경우, 어느 쪽이 식별 할 수있을 것입니다.

나는이 아기는 새로운 것을 배우는 방식과 다소 유사하다 생각합니다. 한 가지는 아기가 개처럼 보이는 방법을 알고, 다른 하나는 테이블처럼 보인다? 이 예제의 무리에서 올 수 있습니다.

"뭔가 모피, 밝은 갈색 머리가 있다면 그때는 개 수."당신은 명시 적으로 아기를 말할 필요가 없을 수도 있습니다

당신은 "그 개입니다. 또한 개입니다. 이것은 테이블입니다. 즉, 테이블입니다."라고 말할 수있다

대략 같은 작업 기계 학습 알고리즘.

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

  • 推荐系统(如YouTube,亚马逊和Netflix
  • 人脸识别
  • 语音识别

等其他场景。

你可能听说过的流行的机器学习算法包括:

  • 神经网络
  • 深度学习
  • 支持向量机
  • 随机森林

你可以使用上述任何算法来解决我之前解释过的图片标注问题。

用于机器学习的 Python

针对机器学习有流行的机器学习库和Python框架。

其中两个最受欢迎的是scikit-learnTensorFlow

scikit-learn附带了一些内置的更流行的机器学习算法。 我在上面提到了其中一些。 TensorFlow更像是一个低级库,允许你构建自定义机器学习算法。

如果你刚刚开始使用机器学习项目,我建议你先从scikit-learn开始。

如果你开始遇到效率问题,那么我会开始研究TensorFlow

我该如何学习机器学习?

要学习机器学习基础知识,请注意,你需要微积分和线性代数的基本知识才能理解这些课程中的一些材料。

2. 数据分析和数据可视化又是怎样呢?

为了帮助你了解这些可能是什么样子,让我在这里给你一个简单的例子。

假设你正在为一家在线销售某些产品的公司工作。

然后,作为数据分析师,你可以绘制这样的条形图。

파이썬 어떻게?  파이썬의 세 가지 주요 응용 프로그램의 방향

用Python生成的条形图

从这张图中,我们可以看出,男性购买了超过400个单位的产品,女性在这个特定的星期天购买了约350个单位的产品。

作为数据分析师,你可能会对这种差异提出一些可能的解释。

一个明显可能的解释是,这种产品比男性更受男性欢迎。 另一种可能的解释可能是样本量太小而且这种差异只是偶然造成的。 而另一种可能的解释可能是,男性倾向于仅在周日因某种原因购买该产品。

要了解哪些解释是正确的,你可能会绘制另一个这样的图表。

파이썬 어떻게?  파이썬의 세 가지 주요 응용 프로그램의 방향

我们不是仅显示星期日的数据,而是查看整整一周的数据。 如你所见,从这张图中,我们可以看到这种差异在不同的日子里非常一致。

从这个小小的分析中,你可以得出结论,对这种差异最有说服力的解释是,这种产品更容易受到男性的欢迎,而不是女性。

另一方面,如果你看到像这样的图表怎么办?

파이썬 어떻게?  파이썬의 세 가지 주요 응용 프로그램의 방향

那么,是什么解释了周日的差异?

你可能会说,也许男人往往只是因为某种原因在周日购买更多的这种产品。 或者,也许只是巧合,周日男人买了更多。

因此,这是数据分析在现实世界中可能看起来像的简化示例。

我在谷歌和微软工作时所做的数据分析工作与这个例子非常相似 - 只是更复杂。 我实际上在谷歌使用Python进行这种分析,而我在微软使用JavaScript

我在这两家公司使用SQL来从我们的数据库中提取数据。 然后,我会使用PythonMatplotlib(在谷歌)或JavaScriptD3.js(在微软)来可视化和分析这些数据。

Python进行数据分析和数据可视化

Matplotlib是最受欢迎的数据可视化库之一。 这是一个非常适合开始学习的库,原因如下:

  • 容易上手
  • 其他一些库如seaborn就是基于它的。 因此,学习Matplotlib将帮助你稍后学习这些其他库。

脚本

什么是脚本?

脚本通常是指编写旨在自动执行简单任务的小程序。

那么,让我举一个我个人经历的例子。

我曾经在日本的一家小型创业公司工作,我们有一个电子邮件支持系统。 这是一个系统,让我们回复客户通过电子邮件发送给我们的问题。

当我在那里工作时,我的任务是计算包含某些关键字的电子邮件的数量,以便我们分析收到的电子邮件。

我们可以手动完成它,但是,我编写了一个简单的程序/简单脚本来自动执行此任务。

实际上,我们当时使用Ruby,但Python也是这类任务的好语言。 Python适合这种类型的任务,主要是因为它具有相对简单的语法并且易于编写。 用它写一些小东西并测试它也很快。

嵌入式应用程序呢?

我不是嵌入式应用程序方面的专家,但我知道Python可以与Rasberry Pi一起使用。 它似乎是硬件爱好者中的一种流行应用。

游戏又如何呢?

你可以使用名为PyGame的库来开发游戏,但它并不是最流行的游戏引擎。 你可以用它来建立一个爱好项目,但如果你认真对待游戏开发,我个人不会选择它。

相反,我建议开始使用UnityC#,这是最受欢迎的游戏引擎之一。 它允许你为许多平台构建游戏,包括Mac,Windows,iOS和Android。

桌面应用又怎样?

你可以使用Tkinter制作一个Python,但它似乎也不是最受欢迎的选择。

相反,似乎Java,C#和C ++等语言更受欢迎。

最近,一些公司也开始使用JavaScript来创建桌面应用程序。

例如,Slack的桌面应用程序是用Electron构建的。 它允许你使用JavaScript构建桌面应用程序。

就个人而言,如果我正在构建一个桌面应用程序,我会使用JavaScript选项。 它允许你重用Web版本中的一些代码(如果有的话)。

但是,我也不是桌面应用程序方面的专家,所以如果你不同意或同意我的意见,请在评论中告诉我。

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

Python 3 or Python 2?

더 현대적인 때문에, 파이썬 3를 추천하지만,이 시점에서 더 인기있는 옵션입니다.

각주 : 프런트 엔드 코드와 백엔드 코드에 대한 설명 (경우에 당신은이 용어에 익숙하지 않은) :

당신처럼 만들고 싶어한다고 가정 Instagram그런 물건.

그런 다음, 당신은 당신이 지원하려는 장치의 각 유형에 대한 프론트 엔드 코드를 작성해야합니다.

당신은 예를 들어, 사용할 수 있습니다 :

장치 / 브라우저의 각 유형에서 실행 안드로이드의 웹 브라우저는 자바의 각 세트에 대한 아이폰 OS 스위프트 자바 스크립트 코드하십시오. 이 버튼을 클릭하면 이렇게 응용 프로그램, 외관의 레이아웃을 결정하는 방법, 코드 설정됩니다.

그러나 여전히 사용자 정보와 사진을 저장 할 수 있어야합니다. 각 사용자의 추종자가 그 / 그녀의 사진을 볼 수 있도록,뿐만 아니라 사용자의 기기에 저장된 서버에 저장할 필요가있다.

이 백엔드 코드는 쓸모 / 서버 측 코드입니다. 당신은 다음과 같은 작업을 수행 할 몇 가지 백엔드 코드를 작성해야합니다

각 사용자의 사진을 발견 기능에 너무 많은 저장 공간을 차지,이 프런트 엔드 및 백 엔드 코드 코드 사이의 차이는 그래서 새 계정을 추천하지 않도록, 사진을 압축하는 사람들에 대해 우려 누구인지 추적 할 수 있습니다.

그런데, 파이썬은 백엔드 서버 측 코드 / 유일한 좋은 선택에 기록되지 않습니다. 많은 다른 인기있는 옵션이 포함 있습니다 Node.js그것은 자바 스크립트를 기반으로합니다.

추천

출처blog.51cto.com/14510224/2437134