安裝 NumPy 的唯一先決條件是 Python 本身。如果你還沒有 Python 并且想要以最簡單的方式開始,我們建議使用?Anaconda Distribution?- 它包括 Python、NumPy 和許多其他用于科學(xué)計算和數(shù)據(jù)科學(xué)的常用包。
NumPy 可以通過conda
、pip
、 macOS 和 Linux 上的包管理器安裝,或者從來源處安裝。有關(guān)更詳細的說明,請參閱下面的Python 和 NumPy 安裝指南。
如果使用conda
,則可以用defaults
或conda-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
,則可以使用以下命令安裝 NumPy:
pip install numpy
此外,在使用 pip 時,最好使用虛擬環(huán)境 - 請參閱下面的可重復(fù)安裝了解有關(guān)使用虛擬環(huán)境的詳細信息。
在 Python 中安裝和管理包很復(fù)雜,對于大多數(shù)任務(wù),有許多替代解決方案。本指南將會幫助讀者了解最佳(或最受歡迎)的解決方案,并給出明確的建議。它側(cè)重于Python
、NumPy
和 PyData
(或數(shù)值計算)堆棧在常見操作系統(tǒng)和硬件上的用戶。
我們將從基于用戶體驗水平和感興趣的操作系統(tǒng)的建議開始。如果您介于“初級”和“高級”之間,且您只是要簡單的了解一下,請選擇“初級”;如果您想根據(jù)未來走得更遠的最佳實踐工作,請選擇“高級”。
在所有 Windows、macOS 和 Linux 上:
base
最小的conda 環(huán)境,并使用一個或多個?conda 環(huán)境來安裝您正在處理的任務(wù)或項目所需的包。defaults
頻道中的軟件包感到滿意,否則請通過conda-forge
?設(shè)置頻道優(yōu)先級來設(shè)置您的默認頻道。如果你覺得稍微過時的軟件包沒問題,并且更喜歡穩(wěn)定性,可以不用直接去使用最新版本的庫:
pip install somepackage --user
.如果使用 GPU:
base
最小的conda 環(huán)境,并使用一個或多個?conda 環(huán)境?來安裝您正在處理的任務(wù)或項目所需的包。defaults
conda 通道(conda-forge
對 GPU 包還沒有很好的支持)。管理包是一個具有挑戰(zhàn)性的問題,因此有很多工具。對于 Web 和通用 Python 開發(fā),有大量與 pip 互補的工具。對于高性能計算(HPC),?Spack
值得考慮。不過對于大多數(shù) NumPy 用戶來說,conda
和?pip
是兩個最流行的工具。
安裝 Python 包的兩個主要工具是 pip
和 conda
。它們的功能部分重疊(例如,兩者都可以安裝numpy
),但是,它們也可以一起工作。我們將在這里討論 pip
和 conda
之間的主要區(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ù)雜的依賴項。
對于那些從個人喜好或者了解了上面關(guān)于 conda 和 pip 之間的主要區(qū)別,確定自己更喜歡基于 pip/PyPI 的解決方案的用戶,我們建議:
隨著庫的更新,運行代碼的結(jié)果可能會發(fā)生變化,或者您的代碼可能會完全中斷。能夠重建您正在使用的軟件包和版本集非常重要。最佳做法是:
每個都有自己的元數(shù)據(jù)格式:
NumPy 不依賴于任何其他 Python 包,但是,它依賴于加速線性代數(shù)庫,通常是?Intel MKL或?OpenBLAS。用戶不必擔心安裝這些(它們會自動包含在所有 NumPy 安裝方法中)。高級用戶可能仍然想知道詳細信息,因為使用的 BLAS 會影響磁盤上的性能、行為和大?。?/p>
除了安裝尺寸、性能和穩(wěn)健性之外,還有兩件事情需要考慮:
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.
更多建議: