App下載

人工智能和機器學(xué)習(xí)系列(一) Python 基礎(chǔ)

陪你演戲 2021-08-24 10:32:26 瀏覽數(shù) (4307)
反饋

Python 是人工智能和機器學(xué)習(xí)的首要編程語言。本文將向您介紹重要的 Python 基礎(chǔ)知識,包括:從何處獲取 Python、Python 2 和 Python 3 之間的區(qū)別以及熟悉的語言概念(如語法和變量),如何在 Python 中工作。

簡介

當(dāng)開發(fā)人員開始使用人工智能 (AI) 和機器學(xué)習(xí) (ML) 軟件時,他們今天最有可能遇到的編程語言是 Python 和 C/C++。大多數(shù)情況下,C/C++ 用于專門的應(yīng)用程序,例如嵌入式物聯(lián)網(wǎng) (IoT) 和高度優(yōu)化的、特定于硬件的神經(jīng)網(wǎng)絡(luò)庫。

Python 是大多數(shù) AI 和 ML 應(yīng)用程序開發(fā)中最常用的語言,即使是為那些 IoT 和硬件加速應(yīng)用程序進行原型設(shè)計和優(yōu)化模型也是如此。

對于從 C#、Java 甚至 JavaScript 等其他語言開始使用 Python 的開發(fā)人員,本文將向您介紹 Python 獨特語法的關(guān)鍵元素,例如循環(huán),以及它們與您可能了解的內(nèi)容有何不同。

本系列的其他文章將探討如何使用可供 AI 和 ML 開發(fā)人員使用的眾多 Python 庫,例如 OpenCV、Natural Language Toolkit (NLTK)、Keras 和 TensorFlow。

本文將向您介紹重要的 Python 基礎(chǔ)知識,包括:

  • 從哪里獲得 Python
  • Python 2 和 Python 3 的區(qū)別
  • 熟悉的語言概念(如語法和變量)如何在 Python 中工作

從哪里獲得 Python

開發(fā)人員通常會問的第一個問題是:我從哪里得到 Python?

答案是:這取決于您的系統(tǒng)和編程環(huán)境。默認(rèn)情況下,Python 安裝在 Mac OS 和一些 Linux 發(fā)行版上。對于沒有 Python 的系統(tǒng),您可以從以下位置獲取安裝程序:

另一種選擇是Jupyter Notebooks和 JupyterLabs 交互式開發(fā)工具。

第三種選擇——我們推薦并將用于這些 Python AI/ML 文章的選擇——Anaconda,一個專為統(tǒng)計、數(shù)據(jù)科學(xué)和 AI/ML 項目設(shè)計的綜合軟件平臺。

Anaconda 包括 JupyterLab(前面提到的基于 Web 的 IDE)以及您在學(xué)習(xí) AI 時可能需要的許多其他工具、庫和示例數(shù)據(jù)源。一旦我們了解機器學(xué)習(xí)庫、數(shù)據(jù)集和可視化,您會發(fā)現(xiàn)它們很有幫助。

哪個版本:Python 2 或 Python 3?

對于語言新手來說,使用 Python 2 還是 Python 3 是一個常見的困惑來源。

Python 2 是一個仍然經(jīng)常使用的舊版本,并且仍然作為 Python 的默認(rèn)版本安裝在一些當(dāng)前的操作系統(tǒng)中。對 Python 2 的官方支持將于 2020 年初結(jié)束。

如果您剛開始使用 Python,則應(yīng)該使用 Python 3。

Python 3 的持續(xù)支持和開發(fā)仍在繼續(xù)。這也適用于您可能想要使用的庫:有些可能仍支持這兩個版本,但許多將完全轉(zhuǎn)移到 Python 3 或可能會這樣做。

你怎么知道你的系統(tǒng)上安裝了哪個版本?

在 Linux 系統(tǒng)和 Mac OS 上,該python命令默認(rèn)為 ?Python 2?,您可以將python3命令用于 ?Python 3?。

要確定系統(tǒng)上安裝了哪個版本,請轉(zhuǎn)到終端窗口或命令提示符并運行以下命令:

python --version

如果安裝了 Python,它會返回python命令使用的 Python 版本。

Python 2.7.16

python3 --version命令對 Python 3 執(zhí)行相同的操作。

Python 3.7.4

識別代碼示例中的 Python 版本

在線教程并不總是明確提及它們是使用 Python 2 還是 Python 3。幸運的是,您可以使用一些啟發(fā)式方法來確定教程使用的版本。

一是在標(biāo)準(zhǔn)輸出上打印文本的方式不同。在 Python 3 中,只有一種有效的方法可以做到這一點:

# Python 2 and Python 3
# This is a comment, by the way
print("Hello, world!")

該語法在 Python 2 中也有效,但 Python 2 示例更常用這種替代語法:

# This only works in Python 2
print "Hello, world!"

Python 語言基礎(chǔ):類型和變量

Python 是動態(tài)類型的。類型不與變量名相關(guān)聯(lián),只與變量值相關(guān)聯(lián)。這與靜態(tài)類型語言(例如 C# 和 Java)不同,在這些語言中,如果您定義了以后int i = 0;,就無法編寫i = "test";。在 Python 中,你可以。

Python 是強類型的(例如,JavaScript 是弱類型的)。在強類型語言中,對不同類型值之間的操作有更嚴(yán)格的限制。在 JavaScript 中,您可以執(zhí)行"abc" + 1并以 string 結(jié)束"abc1",但是如果您在 Python 中嘗試相同的操作,您將收到一個錯誤,表明您無法將字符串與整數(shù)連接起來。

在 Python 中分配變量可以這樣完成:

name = "value"

請注意,行不以分號結(jié)尾。

定義和調(diào)用函數(shù)如下所示:

def say_hello(who):
    print("Hello ", who)

name = input("Your name: ")
say_hello(name)

這是在 Jupyter Notebook 中的樣子:

與 C# 等語言不同,Python 不使用方括號來指定哪些代碼行屬于函數(shù)。相反,Python 使用縮進。具有相同縮進級別的一系列行形成一個塊??s進代碼的推薦方法是每個縮進級別使用四個空格。但是,您也可以使用制表符或其他數(shù)量的空格??s進只需在塊內(nèi)保持一致。

您可以使用return關(guān)鍵字從函數(shù)返回一個值:

def sum(a, b):
    return a + b

如果函數(shù)沒有return語句,它將返回None(Python's null)。

Python 也支持高階函數(shù)(返回函數(shù)或?qū)⒑瘮?shù)作為參數(shù)的函數(shù))。例如,該operation函數(shù)返回兩個函數(shù)之一:

def sum(a, b):
    return a + b

def difference(a, b):
    return a - b

def operation(calculate_sum):
    if calculate_sum:
        return sum
    else:
        return difference

然后可以這樣使用:

operation(True)(5, 4)


結(jié)論

我們討論了 Python 2 和 Python 3 之間的區(qū)別,并了解了如何識別代碼片段中使用的版本。然后我們了解了 Python 的一些基礎(chǔ)知識:類型、變量和函數(shù)。更多關(guān)于Python3,可以學(xué)習(xí)一下Python3相關(guān)教程的內(nèi)容。


0 人點贊