官术网_书友最值得收藏!

第1章 Python編程基礎

1.1 Python基礎知識

1.1.1 Python3.7的安裝

使用Anaconda可以直接組合安裝Python、Jupyter Notebook和Spyder。Anaconda是一個開源的Python發行版本,用于進行大規模的數據處理、預測分析、科學計算,致力于簡化包的管理和部署。

讀者可以通過搜索Anaconda,找到Anaconda官網,并下載。

需要注意的是:我們要根據電腦的系統(Windows、macOS和Linux)選擇對應的Python版本。對于Windows系統,還需要根據系統的位數選擇32位或64位。另外,筆者推薦使用Python 3.7版本。

Jupyter Notebook:Jupyter Notebook是基于網頁的用于交互計算的應用程序。其可被應用于全過程計算:開發、文檔編寫、運行代碼和展示結果。Jupyter Notebook是以網頁形式打開的程序,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示。如在編程過程中需要編寫說明文檔,則可在同一個頁面中直接編寫,便于進行及時的說明和解釋(見圖1-1-1)。

圖1-1-1 Jupyter Notebook的運行界面

Spyder:Spyder是Python(x,y)的作者為它開發的一個簡單的集成開發環境。和其他的Python開發環境相比,它最大的優點就是可以模仿MATLAB的“工作空間”功能,可以很方便地觀察和修改數組的值。Spyder的界面由許多窗格構成,用戶可以根據自己的喜好調整它們的位置和大小。當多個窗格出現在同一個區域時,將使用標簽頁的形式顯示。例如在圖1-1-2中,可以看到Editor、Object inspector、Variable explorer、File explorer、Console、History log以及兩個顯示圖像的窗格。在View菜單中可以設置是否顯示這些窗格。

圖1-1-2 Spyder運行界面

1.1.2 包的安裝與使用

在計算機程序的開發過程中,隨著程序代碼越寫越多,在一個文件里的代碼就會越來越長,越來越不容易維護。為了編寫可維護的代碼,我們把很多函數分組,分別放到不同的文件里,這樣,每個文件包含的代碼就相對較少,很多編程語言都采用這種組織代碼的方式。在Python中,一個.py文件就稱之為一個模塊(module)。模塊的名字就是該文件的名字(不包含后綴)。使用模塊不僅可以大大提高代碼的可維護性,而且編寫代碼也不必從零開始。

為了避免模塊名沖突,Python又引入了按目錄來組織模塊的方法,稱為包(package)。一個包就是一個文件夾(Python 2規定該文件夾必須包含一個__init__.py文件,Python 3沒有要求),包名就是文件夾名。包的安裝可以直接打開Anaconda 3文件夾中的Anaconda Prompt對話框,輸入conda install<package>或者pip install<package>,就可以安裝對應的包。也可以使用conda uninstall<package>和pip uninstall<package>卸載對應的包。模塊和包的導入與使用方法沒有本質區別。我們在使用這些包前,需要提前將這些包導入,使用import語句可以導入4種不同的對象類型。

Python借助外在的包和模塊可以實現網絡爬蟲、數據分析與可視化、機器學習和深度學習等諸多功能(見圖1-1-3)。其中,常用于數據分析處理與機器學習的包如下。

圖1-1-3 常用的Python包

● NumPy、Pandas、DASK和Numba包可用于分析數據的可拓展性與性能;

● SciPy、StatsModel和scikit-learn可用于數據的處理與分析;

● matplotlib、Seaborn、plotnine、Bokeh、Datashader和HoloViews包可實現數據結果的可視化;

● scikit-learn、PyTorch、TensorFlow和theano包可構造并訓練機器學習與深度學習模型。

1.1.3 Python基礎操作

1.Python注釋

注釋的目的是讓閱讀人員能夠輕松讀懂每一行代碼的意義,同時也為后期代碼的維護提供便利。在Python中,單行注釋是以#號開頭的。而Python的多行注釋是由兩個三引號(''')包含起來的。

2.Python的行與縮進

與R、C++等語言相比,Python最具特色的就是使用縮進表示代碼塊,而不需要使用大括號。縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數。需要特別注意的是:不一致的代碼塊縮進會導致代碼運行錯誤。

3.變量與對象

Python中的任何數值、字符串、數據結構、函數、類、模塊等都是對象。每個對象都有標識符、類型(type)和值(value)。幾乎所有的對象都有方法與屬性,都可以通過“對象名.方法(參數1,參數2,…,參數n)”或者“對象名.屬性”的方式訪問該對象的內部數據結構。需要注意的是:對象之間的賦值并不是復制。

復制是指復制對象與原始對象不是同一個對象,原始對象發生任何變化都不會影響復制對象的變化,可以分為淺復制(copy)和深復制(deepcopy)。淺復制是復制了對象,但對于對象中的元素,依然使用原始的引用,即只復制指向對象的指針,并不復制對象本身。深復制是指完全地復制一個對象的所有元素及其子元素,可以理解為直接復制整個對象到另一塊內存中。

主站蜘蛛池模板: 什邡市| 丘北县| 铜陵市| 台北市| 乃东县| 揭东县| 沾益县| 赤水市| 万源市| 德保县| 兴国县| 七台河市| 陈巴尔虎旗| 临桂县| 泸定县| 辽阳县| 泾川县| 邹城市| 永吉县| 石柱| 商城县| 开江县| 历史| 栾川县| 永宁县| 建阳市| 开平市| 黄龙县| 松阳县| 彰化市| 汾西县| 邹平县| 剑河县| 英德市| 徐水县| 监利县| 锦屏县| 兴文县| 丹寨县| 彭山县| 尼木县|