天天看點

Python的資料分析基礎包——Numpy

numpy是一個開源的Python計算庫,包括了很多數學函數。numpy的主要功能之一是用來操作數組與矩陣。也有人說Python+numpy=matable。

numpy裡基本資料都是ndarray(N-dimensional array)類型的。

#導入numpy
>>>import numpy as np

>>>a = [1,2,3,4,5,6,7,8,9]
>>>print(a)

>>>a * 2    #把每個清單重複一遍,而不是數值乘以2
           
Python的資料分析基礎包——Numpy

想要對清單的數值乘以2可以通過循環來實作,也可以通過把list轉換成ndarray的方法來實作。

#把普通Python中的list轉換成ndarray,這樣就不用寫循環來進行數值運算了,可以直接用這個方法。

>>>A = np.array(a)
>>>print(A)
>>>A

[1 2 3 4 5 6 7 8 9]
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

>>>print(type(A))

<class 'numpy.ndarray'>
           

數組運算:

Python的資料分析基礎包——Numpy
#指定次元來建立多元數組
>>>e = np.array([1,2,3,4,5,6],ndmin=3)
>>>print(e)

[[[1 2 3 4 5 6]]]

#指定次元和數值類型來建立多元數組
>>>f = np.array([1,2,3,4,5,6],ndmin=3,dtype=np.complex) #dtype裡的“np.”不能省略
>>>print(f)

[[[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j 6.+0.j]]]

           

ndarry裡有一些基本類型

屬性 描述
ndarray.ndim 數組軸的個數,也被稱作秩
ndarray,shape 數組在每個次元上大小的整數元組
ndarray,size 數組元素的總個數
ndarray.dtype 數組元素的資料類型,dtype 類型可以用于建立數組中
ndarray.itemsize 數組中每個元素的位元組大小
ndarray.data 包含實際數組元素的緩沖區位址
ndarray,flat 數組元素的疊代器

可以通過修改數組的shape屬性,在保持數組元素個數不變的情況下,改變數組每個軸的長度。

>>>g = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
>>>print(g)
           
Python的資料分析基礎包——Numpy
>>>g.shape = 4,3
>>>print(g)
           
Python的資料分析基礎包——Numpy

注意從(3,4)改為(4,3)并不是對數組進行轉置,而隻是改變每個軸的大小,數組元素在記憶體中的位置并沒有改變。

>>>g.shape = 2,-1
>>>print(g)

[[ 1  2  3  4  4  5]
 [ 6  7  7  8  9 10]] 
           

當某個軸的元素為-1時,将根據數組元素的個數自動計算此軸的長度。

>>>h = g.reshape(6,2)
>>>print(h)

[[ 1  2]
 [ 3  4]
 [ 4  5]
 [ 6  7]
 [ 7  8]
 [ 9 10]]
           

使用數組的reshape方法,可以建立一個改變了尺寸的新數組,原數組的shape保持不變