NumPy 安裝

2021-11-06 17:33 更新

安裝 NumPy 的唯一先決條件是 Python 本身。如果你還沒有 Python 并且想要以最簡單的方式開始,我們建議使用?Anaconda Distribution?- 它包括 Python、NumPy 和許多其他用于科學(xué)計算和數(shù)據(jù)科學(xué)的常用包。

NumPy 可以通過condapip、 macOS 和 Linux 上的包管理器安裝,或者從來源處安裝。有關(guān)更詳細的說明,請參閱下面的Python 和 NumPy 安裝指南。

conda

如果使用conda,則可以用defaultsconda-forge?方法安裝 NumPy?:

## Best practice, use an environment rather than install in the base env
conda create -n my-env
conda activate my-env
## If you want to install from conda-forge
conda config --env --add channels conda-forge
## The actual install command
conda install numpy

pip

如果使用pip,則可以使用以下命令安裝 NumPy:

pip install numpy

此外,在使用 pip 時,最好使用虛擬環(huán)境 - 請參閱下面的可重復(fù)安裝了解有關(guān)使用虛擬環(huán)境的詳細信息。

Python 和 NumPy 安裝指南

在 Python 中安裝和管理包很復(fù)雜,對于大多數(shù)任務(wù),有許多替代解決方案。本指南將會幫助讀者了解最佳(或最受歡迎)的解決方案,并給出明確的建議。它側(cè)重于PythonNumPyPyData(或數(shù)值計算)堆棧在常見操作系統(tǒng)和硬件上的用戶。

建議

我們將從基于用戶體驗水平和感興趣的操作系統(tǒng)的建議開始。如果您介于“初級”和“高級”之間,且您只是要簡單的了解一下,請選擇“初級”;如果您想根據(jù)未來走得更遠的最佳實踐工作,請選擇“高級”。

初級用戶

在所有 Windows、macOS 和 Linux 上:

  • 安裝Anaconda(它會安裝您需要的所有軟件包以及下面提到的所有其他工具)。
  • 對于編寫和執(zhí)行代碼,在JupyterLab 中使用 notebooks?進行探索性和交互式計算,使用?SpyderVisual Studio Code?編寫腳本和包。
  • 使用Anaconda Navigator管理您的包并啟動 JupyterLab、Spyder 或 Visual Studio Code。

高級用戶

Windows 或 macOS

  • 安裝Miniconda。
  • 保持base最小的conda 環(huán)境,并使用一個或多個?conda 環(huán)境來安裝您正在處理的任務(wù)或項目所需的包。
  • 除非您只對defaults頻道中的軟件包感到滿意,否則請通過conda-forge?設(shè)置頻道優(yōu)先級來設(shè)置您的默認頻道。

Linux

如果你覺得稍微過時的軟件包沒問題,并且更喜歡穩(wěn)定性,可以不用直接去使用最新版本的庫:

  • 盡可能多地使用你的操作系統(tǒng)包管理器(Python 本身、NumPy 和其他庫)。
  • 使用pip install somepackage --user.

如果使用 GPU:

  • 安裝Miniconda。
  • 保持base最小的conda 環(huán)境,并使用一個或多個?conda 環(huán)境?來安裝您正在處理的任務(wù)或項目所需的包。
  • 使用defaultsconda 通道(conda-forge對 GPU 包還沒有很好的支持)。

Python 包管理

管理包是一個具有挑戰(zhàn)性的問題,因此有很多工具。對于 Web 和通用 Python 開發(fā),有大量與 pip 互補的工具。對于高性能計算(HPC),?Spack 值得考慮。不過對于大多數(shù) NumPy 用戶來說,conda 和?pip 是兩個最流行的工具。

pip 和 conda

安裝 Python 包的兩個主要工具是 pipconda。它們的功能部分重疊(例如,兩者都可以安裝numpy),但是,它們也可以一起工作。我們將在這里討論 pipconda 之間的主要區(qū)別 。如果想有效地管理包,這對于理解這一點很重要。

第一個區(qū)別是 conda 是跨語言的,它可以安裝 Python,而 pip 是為系統(tǒng)上的特定 Python 安裝的,并且僅將其他軟件包安裝到同一個 Python 安裝中。這也意味著 conda 可以安裝您可能需要的非 Python 庫和工具(例如編譯器、CUDA、HDF5),而 pip 不能。

第二個區(qū)別是 pip 從 Python Packaging Index (PyPI) 安裝,而 conda 從它自己的渠道安裝(通常是“defaults”或“conda-forge”)。PyPI 是迄今為止最大的軟件包集合,但是,所有流行的軟件包也可用于 conda。

第三個區(qū)別是 conda 是用于管理包、依賴項和環(huán)境的集成解決方案,而使用 pip 您可能需要另一個工具(有很多?。﹣硖幚憝h(huán)境或復(fù)雜的依賴項。

選擇 pip/PyPI

對于那些從個人喜好或者了解了上面關(guān)于 conda 和 pip 之間的主要區(qū)別,確定自己更喜歡基于 pip/PyPI 的解決方案的用戶,我們建議:

  • python.org、?Homebrew或您的 Linux 包管理器安裝 Python?。
  • 使用 Poetry 作為維護最良好的工具,它以與 conda 類似的方式提供依賴項解析器和環(huán)境管理功能。

可重復(fù)安裝

隨著庫的更新,運行代碼的結(jié)果可能會發(fā)生變化,或者您的代碼可能會完全中斷。能夠重建您正在使用的軟件包和版本集非常重要。最佳做法是:

  1. 為您正在處理的每個項目使用不同的環(huán)境,
  2. 使用您的軟件包安裝程序記錄軟件包名稱和版本;

每個都有自己的元數(shù)據(jù)格式:

  • Conda:conda 環(huán)境和 environment.yml
  • Pip:虛擬環(huán)境和?requirements.txt
  • Poetry:虛擬環(huán)境和 pyproject.toml

NumPy 包和加速線性代數(shù)庫

NumPy 不依賴于任何其他 Python 包,但是,它依賴于加速線性代數(shù)庫,通常是?Intel MKL或?OpenBLAS。用戶不必擔心安裝這些(它們會自動包含在所有 NumPy 安裝方法中)。高級用戶可能仍然想知道詳細信息,因為使用的 BLAS 會影響磁盤上的性能、行為和大?。?/p>

  • pip 安裝的 PyPI 上的 NumPy 輪子是使用 OpenBLAS 構(gòu)建的。OpenBLAS 庫包含在輪子中。這使得輪子更大,如果用戶也安裝(例如)SciPy,他們現(xiàn)在將在磁盤上擁有 OpenBLAS 的兩個副本。
  • 在 conda 默認通道中,NumPy 是針對 Intel MKL 構(gòu)建的。MKL 是一個單獨的包,將在用戶安裝 NumPy 時安裝在用戶的環(huán)境中。
  • 在 conda-forge 頻道中,NumPy 是針對虛擬的“BLAS”包構(gòu)建的。當用戶從 conda-forge 安裝 NumPy 時,該 BLAS 包將與實際庫一起安裝 - 這默認為 OpenBLAS,但它也可以是 MKL(來自默認通道),甚至?BLIS或參考 BLAS。
  • MKL 包比 OpenBLAS 大很多,它在磁盤上大約有 700 MB,而 OpenBLAS 大約有 30 MB。
  • MKL 通常比 OpenBLAS 更快、更健壯。

除了安裝尺寸、性能和穩(wěn)健性之外,還有兩件事情需要考慮:

  • 英特爾 MKL 不是開源的。對于正常使用,這不是問題,但如果用戶需要重新分發(fā)使用 NumPy 構(gòu)建的應(yīng)用程序,這可能是一個問題。
  • MKL 和 OpenBLAS 都將使用多線程進行函數(shù)調(diào)用,如?np.dot,線程數(shù)由構(gòu)建時選項和環(huán)境變量決定。通常會使用所有 CPU 內(nèi)核。這有時對用戶來說是意料之外的;NumPy 本身不會自動并行化任何函數(shù)調(diào)用。它通常會產(chǎn)生更好的性能,但也可能是有害的——例如,當使用 Dask、scikit-learn 或多處理的另一個級別的并行化時。

故障排除

如果安裝失敗并顯示以下消息,請參閱疑難解答 ImportError

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!


Importing the numpy c-extensions failed. This error can happen for
different reasons, often due to issues with your setup.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號