當前位置:
首頁 > 最新 > Python數據分析-numpy詳細教程一

Python數據分析-numpy詳細教程一

NumPy是高性能科學計算和數據分析的基礎包,這是一個處理數組的強大模塊,本期將會從如下幾個方面介紹numpy模塊:

1、數組的創建

2、數組屬性和函數

3、數組元素的獲取--索引、切片

一、創建數組

創建數組最簡單的辦法就是使用array函數,它接受一切序列型對象,比如列表和元組等。

1、一維數組的創建

1.1、通過numpy模塊中的arange函數創建一維有序數組

#通過arange函數創建一維數組

In [1]:importnumpyasnp

In [2]:arr1=np.arange(6)

In [3]:arr1

Out[3]:array([,1,2,3,4,5])

1.2、通過numpy模塊中的array函數創建一維數組

#通過列表序列創建一維數組

In [4]:arr2=np.array([2,3,4])

In [5]:arr2

Out[5]:array([2,3,4])

#通過元組序列創建一維數組

In [6]:arr3=np.array((6,7,8,9))

In [7]:arr3

Out[7]:array([6,7,8,9])

2、二維數組的創建

二維數組的創建,本質是列表套列表或者元組套元組,如下所示:

#列表套列表創建二維數組

In [8]:arr4=np.array([[1,2,3,4],[5,6,7,8]])

In [9]:arr4

Out[9]:

array([[1,2,3,4],

[5,6,7,8]])

#元組套元組創建二維數組

In [10]:arr5=np.array(((1,2,3,4),(5,6,7,8),(9,10,11,12)))

In [11]:arr5

Out[11]:

array([[1,2,3,4],

[5,6,7,8],

[9,10,11,12]])

3、特殊數組的創建

除了array函數之外,還有一些函數也可以創建數組,比如,zeros和ones分別可以創建指定長度或形狀全0或全1數組。要用這些方法創建多維數組,只需要傳入一個表示形狀的元組即可,示例如下:

#創建全1的一維數組

In [12]:arr6=np.ones(3)

In [13]:arr6

Out[13]:array([1.,1.,1.])

#創建全1的二維數組

In [14]:arr7=np.ones((3,4))

In [15]:arr7

Out[15]:

array([[1.,1.,1.,1.],

[1.,1.,1.,1.],

[1.,1.,1.,1.]])

#創建全的一維數組

In [16]:arr8=np.zeros(3)

In [17]:arr8

Out[17]:array([0.,0.,0.])

#創建全的二維數組

In [18]:arr9=np.zeros((3,4))

In [19]:arr9

Out[19]:

array([[0.,0.,0.,0.],

[0.,0.,0.,0.],

[0.,0.,0.,0.]])

二、數組屬性和函數

2.1、當一個數組創建好之後,我們更多的想知道數組本身有哪些屬性。

In [1]:importnumpyasnp

In [2]:arr=np.arange(1,13).reshape(3,4)

In [3]:arr

Out[3]:

array([[1,2,3,4],

[5,6,7,8],

[9,10,11,12]])

In [4]:arr.shape#返回數組的行數和列數

Out[4]:(3,4)

In [5]:arr.size#返回數組元素的個數

Out[5]:12

In [6]:arr.dtype#返回數組中元素數據類型

Out[6]:dtype("int32")

In [7]:arr.ndim#返回數組的維數

Out[7]:2

In [8]:arr.T#返回數組的轉置結果

Out[8]:

array([[1,5,9],

[2,6,10],

[3,7,11],

[4,8,12]])

2.2、介紹完數組屬性之後,接下來我們來看看數組自身有哪些函數可操作

1、將一維數組轉換成二維數組,通過reshape函數重置數組的行數和列數

In [1]:importnumpyasnp

In [2]:arr=np.arange(1,13)#創建一維數組

In [3]:arr

Out[3]:array([1,2,3,4,5,6,7,8,9,10,11,12])

# 一維數組轉換為二維數組

In [4]:arr1=arr.reshape(4,3)

In [5]:arr1

Out[5]:

array([[1,2,3],

[4,5,6],

[7,8,9],

[10,11,12]])

2、數組行數的統計,可以採用len函數

#數組行數的統計

In [6]:len(arr1)#返回數組的行數

Out[6]:4

3、數組轉換成列表,採用tolist函數

#數組轉換成列表

In [7]:arr2=arr1.tolist()

In [8]:arr2

Out[8]:[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

4、數組數據類型的轉換,採用astype函數強制轉換

#數組數據類型的轉換

In [9]:arr3=arr1.astype(float)

In [10]:arr3

Out[10]:

array([[1.,2.,3.],

[4.,5.,6.],

[7.,8.,9.],

[10.,11.,12.]])

In [11]:arr1.dtype

Out[11]:dtype("int32")

In [12]:arr3.dtype

Out[12]:dtype("float64")

三、數組元素的獲取--索引、切片

一維數組元素的獲取與列表元素的獲取方式一樣,如下所示:

In [1]:importnumpyasnp

In [2]:arr=np.arange(6)

In [3]:arr

Out[3]:array([,1,2,3,4,5])

In [4]:arr[3]#獲取第4個元素

Out[4]:3

In [5]:arr[:3]#獲取前3個元素

Out[5]:array([,1,2])

In [6]:arr[3:]#獲取第4個元素以及之後的所有元素

Out[6]:array([3,4,5])

In [7]:arr[-1]#獲取最後1個元素

Out[7]:5

In [8]:arr[-2:]#獲取最後2個元素

Out[8]:array([4,5])

In [9]:arr[::2]#從第1個元素開始,獲取步長為2的所有元素

Out[9]:array([,2,4])

二維數組元素的獲取,如下所示:

In [1]:importnumpyasnp

In [2]:arr=np.arange(12).reshape(3,4)

In [3]:arr

Out[3]:

array([[,1,2,3],

[4,5,6,7],

[8,9,10,11]])

In [4]:arr[1]# 返回數組的第2行

Out[4]:array([4,5,6,7])

In [5]:arr[:2]#返回數組的前2行

Out[5]:

array([[,1,2,3],

[4,5,6,7]])

In [6]:arr[[,2]]#返回指定的第1行和第3行

Out[6]:

array([[,1,2,3],

[8,9,10,11]])

In [7]:arr[:,]#返回數組的第1列

Out[7]:array([,4,8])

In [8]:arr[:,-2:]#返回數組的最後2列

Out[8]:

array([[2,3],

[6,7],

[10,11]])

In [9]:arr[:,[,2]]#返回數組的第1列和第3列

Out[9]:

array([[,2],

[4,6],

[8,10]])

In [10]:arr[1,2]#返回數組中第2行第3列對應的元素

Out[10]:6

此次numpy分享差不多結束了,下期將繼續分享該模塊的其它內容,若我寫的對大家有所幫助,麻煩大家給個鼓勵或者關注一下。

學習與分享,關注小號


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python徒手實現識別手寫數字—對圖片結果進行加權處理
為什麼生態學家要學習Python或者R?

TAG:Python |