Python介紹

Python介紹

1、簡介

Python是徹底面向對象的語言。函數、模塊、數字、字符串都是對象。而且徹底支持繼承、重載等,有益於加強源代碼的複用性。Python相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。python

雖然Python可能被粗略地分類爲「腳本語言」(script language),但實際上一些大規模軟件開發計劃也普遍地使用它。Python的支持者較喜歡稱它爲一種高級動態編程語言,緣由是「腳本語言」泛指僅做簡單程序設計任務的語言,如shellscript、VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。程序員

Python自己被設計爲可擴充的,提供了豐富的API和工具,以便程序員可以輕鬆地使用C語言、C++、Cython來編寫擴充模塊。Python編譯器自己也能夠被集成到其它須要腳本語言的程序內。所以,不少人還把Python做爲一種"膠水語言"(glue language)使用。使用Python將其餘語言編寫的程序進行集成和封裝。算法

Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),而後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的。shell

除此以外,Python還能夠以交互模式運行,好比主流操做系統Unix/Linux、Mac、Windows均可以直接在命令模式下直接運行Python交互環境。直接下達操做指令便可實現交互操做。編程

一、科學計算工具包

提及科學計算,你們首先想起的是Matlab,集數值計算,可視化工具及交互於一身,不過惋惜是一個商業產品。開源方面除了GNU Octave在嘗試作一個相似Matlab的工具包外,Python的這幾個工具包集合到一塊兒也能夠替代Matlab的相應功能:NumPy+SciPy+Matplotlib+iPython。同時,這幾個工具包,特別是NumPy和SciPy,也是不少Python文本處理&機器學習&數據挖掘工具包的基礎,很是重要。最後再推薦一個系列《用Python作科學計算》,將會涉及到NumPy。數組

1.Numpy

NumPy幾乎是一個沒法迴避的科學計算工具包,最經常使用的也許是它的N維數組對象,其餘還包括一些成熟的函數庫,用於整合C/C++和Fortran代碼的工具包,線性代數、傅里葉變換和隨機數生成函數等。NumPy提供了兩種基本的對象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存儲單一數據類型的多維數組,而ufunc則是可以對數組進行處理的函數。promise

官方主頁:http://www.numpy.org/bash

2.Scipy

「SciPy是一個開源的Python算法庫和數學工具包,SciPy包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其餘科學與工程中經常使用的計算。其功能與軟件MATLAB、Scilab和GNU Octave相似。 Numpy和Scipy經常結合着使用,Python大多數機器學習庫都依賴於這兩個模塊。」網絡

—引用自「Python機器學習庫」數據結構

官方主頁:http://www.scipy.org/

3.Matplotlib

matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab類似的命令API,十分適合交互式地進行製圖。並且也能夠方便地將它做爲繪圖控件,嵌入GUI應用程序中。Matplotlib能夠配合ipython shell使用,提供不亞於Matlab的繪圖體驗,總之用過了都說好。

官方主頁:http://matplotlib.org/

二、機器學習和數據挖掘工具包

機器學習和數據挖掘這兩個概念不太好區分,這裏就放到一塊兒了。這方面的開源Python工具包有不少,這裏先從熟悉的講起,再補充其餘來源的資料,也歡迎你們補充。

1.scikit-learn

首先推薦大名鼎鼎的scikit-learn,scikit-learn是一個基於NumPy, SciPy, Matplotlib的開源機器學習工具包,主要涵蓋分類,迴歸和聚類算法,例如SVM, 邏輯迴歸,樸素貝葉斯,隨機森林,k-means等算法,代碼和文檔都很是不錯,在許多Python項目中都有應用。例如在咱們熟悉的NLTK中,分類器方面就有專門針對scikit-learn的接口,能夠調用scikit-learn的分類算法以及訓練數據來訓練分類器模型。

官方主頁:http://scikit-learn.org/

2.Pandas

Pandas也是基於NumPy和Matplotlib開發的,主要用於數據分析和數據可視化,它的數據結構DataFrame和R語言裏的data.frame很像,特別是對於時間序列數據有本身的一套分析機制,很是不錯。這裏推薦一本書《Python for Data Analysis》,做者是Pandas的主力開發,依次介紹了iPython, NumPy, Pandas裏的相關功能,數據可視化,數據清洗和加工,時間數據處理等,案例包括金融股票數據挖掘等,至關不錯。

官方主頁:http://pandas.pydata.org/

3.mlpy

Machine Learning Python

mlpy is a Python module for Machine Learning built on top of NumPy/SciPy and the GNU Scientific Libraries.mlpy provides a wide range of state-of-the-art machine learning methods for supervised and unsupervised problems and it is aimed at finding a reasonable compromise among modularity, maintainability, reproducibility, usability and efficiency. mlpy is multiplatform, it works with Python 2 and 3 and it is Open Source, distributed under the GNU General Public License version 3.

官方主頁:http://mlpy.sourceforge.net/

4.PyBrain

PyBrain(Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network)是Python的一個機器學習模塊,它的目標是爲機器學習任務提供靈活、易應、強大的機器學習算法。(這名字很霸氣)

PyBrain正如其名,包括神經網絡、強化學習(及兩者結合)、無監督學習、進化算法。由於目前的許多問題須要處理連續態和行爲空間,必須使用函數逼近(如神經網絡)以應對高維數據。PyBrain以神經網絡爲核心,全部的訓練方法都以神經網絡爲一個實例。

5.Theano

Theano 是一個 Python 庫,用來定義、優化和模擬數學表達式計算,用於高效的解決多維數組的計算問題。Theano的特色:緊密集成Numpy;高效的數據密集型GPU計算;高效的符號微分運算;高速和穩定的優化;動態生成c代碼;普遍的單元測試和自我驗證。自2007年以來,Theano已被普遍應用於科學運算。theano使得構建深度學習模型更加容易,能夠快速實現多種模型。

6.Pylearn2

Pylearn2創建在theano上,部分依賴scikit-learn上,目前Pylearn2正處於開發中,將能夠處理向量、圖像、視頻等數據,提供MLP、RBM、SDA等深度學習模型。

2、安裝

參見:Windows中安裝Python2.7Windows中安裝Python3.7

如今,Linux中通常都內置了Python2.x

3、運行方式

一、shell

在cmd窗口中輸入python進入命令行模式,在其中以交互式方式執行。

以下圖:

二、shell方式調用py文件

在文件中編寫Python腳本文件後綴爲.py。進入該文件所在目錄直接執行python xxx.py。

三、IDE模式

可使用IDE進行運行和編寫,經常使用的IDE包括:pycharm、pyDev for Eclipse,也可使用Anaconda。

四、Python腳本

BSD類的Unix系統中,Python腳本能夠像shell腳本那樣直接執行,只須要在腳本文件開頭加一行命令便可,用於指定文件和模式,代碼以下:

#!/usr/bin/env python

coding……

執行腳本以前,須要給腳本指定執行模式和權限,命令以下:

chmod 775 xxx.py

chmod +x xxx.py

以上兩種方式都可。

Windows中沒有這種方式,直接雙擊文件運行便可。

五、Python編碼

Python默認讀取py文件時採用的編碼格式是ASCII格式,若是文件不是該格式極可能出現亂碼問題形成異常。

解決方法:

只要在文件開頭加入# -*- coding:UTF-8 -*- 或者 #coding=utf-8來通知Python解釋器在讀取文件時採用的編碼集。

例如:

# -*- coding:utf-8 -*-

print "hello world!"

或者

# coding=utf-8

print "hello world!"

完整的腳本文件頭:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

coding……

下一篇:Windows中安裝Python2.7

相關文章
相關標籤/搜索