Python 之NumPy
NumPy的主要對象是同質的多維數組。它是一個有明確索引的相同類型的元素組成的表。在NumPy中維度稱之為軸,軸數稱之為列。
舉個例子:
例一:
[ 1, 2, 1 ]
這是一個一維數組,因為它只有一個軸,這個軸的長度是3.
列二:
[[ 1., 0., 0.],[ 0., 1., 2.]]
這是一個二維數組,第一個維度的長度是2,第二個維度的長度是3.
NumPy中的array類被稱之為ndarray,但是他的別名array更有名。特別需要註意的是NumPy.array和Python 標準庫裏的arry.array不一樣。array.array只提供了比較少的方法。而NumPy中array包含以下重要屬性:
ndarray.ndim
數組的維度數量
返回類型: number
ndarray.shape
數組的各個維度,這是一個存儲了數組各個維度大小的int類型元祖。是一個n行m列矩陣,shape(n,m),這個shape的長度就是數組的維度數量。(如(2,3)表示2x3)
返回類型:tuple
ndarray.size
數組中所有元素的數量
返回類型:number
ndarray.dtype
數組中元素的類型。你可以使用python的types來創建和指定dtype’s,除此之外,numpy有自己的types,如:float64
返回類型:dtype對象
ndarray.itemsize
數組中每個元素的字節數。例如:float64類型的數組元素的itemize是8(64/8)
ndarray.data
不常用,訪問數組元素使用索引更便利
創建數組
#使用array方法創建數組,array的參數可以是python的list和tuple >>> import numpy as np >>> a = np.array([2,3,4]) >>> a array([2, 3, 4]) >>> a.dtype dtype(‘int64‘) >>> b = np.array([1.2, 3.5, 5.1]) >>> b.dtype dtype(‘float64‘)
#array可以將序列中的序列轉化為2維數組 >>> b = np.array([(1.5,2,3), (4,5,6)]) >>> b array([[ 1.5, 2. , 3. ], [ 4. , 5. , 6. ]])
數組的類型可以在創建時被顯示的指定 >>> c = np.array( [ [1,2], [3,4] ], dtype=complex ) >>> c array([[ 1.+0.j, 2.+0.j], [ 3.+0.j, 4.+0.j]])
在創建數組的時候通常不知道數組的數據,但是知道數組的大小。所以numpy提供了幾種方式類初始化數組內容。
zeros創建一個所有元素都是0的數組
>>> np.zeros( (3,4) ) array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
ones創建一個所有元素都是1的數組
>>> np.ones( (2,3,4), dtype=np.int16 ) # dtype can also be specified array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16)
empty的內容使用隨機數填充
>>> np.empty( (2,3) ) # uninitialized, output may vary array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260], [ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]
本文出自 “數據挖掘工程師的成長歷程” 博客,請務必保留此出處http://qianqiansun.blog.51cto.com/13271301/1963445
Python 之NumPy