1. 程式人生 > >Python 之NumPy

Python 之NumPy

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