數學之路-python計算實戰(5)-初識numpy以及pypy下執行numpy
N
NumPy系統是Python的一種開源的數字擴充套件。這種工具可用來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。據說NumPy將Python相當於變成一種免費的更強大的MatLab系統。一個用python實現的科學計算包。包括:1、一個強大的N維陣列物件Array;2、比較成熟的(廣播)函式庫;3、用於整合C/C++和Fortran程式碼的工具包;4、實用的線性代數、傅立葉變換和隨機數生成函式。numpy和稀疏矩陣運算包scipy配合使用更加方便。
NumPy(Numeric Python
git clonehttps://bitbucket.org/pypy/numpy.git
cd numpy
pypy setup.pyinstall
deep@myddb:~$pypy
Python 2.7.6 (32f35069a16d819b58c1b6efb17c44e3e53397b2, Jun 26 2014, 21:49:19)
[PyPy 2.3.1 with GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or"license" for more information.
>>>> import numpy as np
>>>>
本部落格所有內容是原創,如果轉載請註明來源
比python標準庫更方便的是,numpy提供了一個N維陣列型別ndarray,這是一個容器型別,儲存了相同型別與大小的資料項,ndarray可以被切片,擁有整數索引,每個資料項佔有一樣的記憶體空間,陣列物件的維度數目由shape屬性定義,這是一個元組,資料項的型別由dtype定義。
>>>> myx=np.array([[11,22,33],[44,55,66]])
>>>>myy=np.array([myx,myx])
>>>> myy
array([[[11, 22,33],
[44, 55, 66]],
[[11, 22, 33],
[44, 55, 66]]])
>>>>myx[0]=[111,222,333]
>>>> myy
array([[[11, 22,33],
[44, 55, 66]],
[[11, 22, 33],
[44, 55, 66]]])
>>>>myx.dtype
dtype('int32')
>>>>myy.dtype
dtype('int32')
>>>>myy.shape
(2, 2, 3)
>>>>myx.shape
(2, 3)
>>>>
以上程式碼演示了基本使用,ndarray物件本身可以做為另一個ndarray物件的資料項,會生成一個複製品,所以對內嵌物件的修改不會有副作用。