Python應用筆記-Numpy數據結構詳解

Python應用-Numpy數據結構詳解


概念介紹
numpy是python的一個擴充程序庫,支持高階大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數字函數庫。
對於數據的運算,用矩陣會比python自帶的字典或者列表快很多。
主要應用有:
數據分析 機器學習 深度學習
這裏我們主要介紹一下numpy的數據結構(內容來自NumPy菜鳥教程

在這裏插入圖片描述
數據類型對象(dtype)
數據類型對象是用來描述與數組對應的內存區域如何使用,這依賴如下幾個方面:

數據的類型(整數,浮點數或者 Python 對象)
數據的大小(例如, 整數使用多少個字節存儲)
數據的字節順序(小端法或大端法)
在結構化類型的情況下,字段的名稱、每個字段的數據類型和每個字段所取的內存塊的部分
如果數據類型是子數組,它的形狀和數據類型

字節順序是通過對數據類型預先設定"<“或”>“來決定的。”<“意味着小端法(最小值存儲在最小的地址,即低位組放在最前面)。”>"意味着大端法(最重要的字節存儲在最小的地址,即高位組放在最前面)。

dtype對象是使用以下語法構造的:
numpy.dtype(object,align,copy)

object - 要轉換爲的數據類型對象
align - 如果爲 true,填充字段使其類似 C 的結構體。
copy - 複製 dtype 對象 ,如果爲 false,則是對內置數據類型對象的引用

我們通過以下實例來理解:
實例1

import numpy as np
#使用標量類型
dt=np.dtype(np.int32)
print(dt)
---------------------------------------------------------------------------------------------------
#輸出結果爲
int32

實例2

import numpy as np
# int8, int16, int32, int64 四種數據類型可以使用字符串'i1','i2','i4','i8'代替
dt=np.dtype('i4')
print(dt)
---------------------------------------------------------------------------------------------------
#輸出結果爲
int32

實例3

import numpy as np
#字節順序標註
dt=np.dtype('<i4')
print(dt)
---------------------------------------------------------------------------------------------------
#輸出結果爲
int32

實例4

#首先創建結構化數據類型
import numpy as np
dt=np.dtype([('age',np.int8)])
print(dt)
---------------------------------------------------------------------------------------------------
#輸出結果爲
[('age','i1')]

實例5

#將數據類型應用於ndarray對象
import numpy as np
dt=np.dtype([('age',np.int8)])
a=np.array([(10,),(20,),(30,)],dtype=dt)
print(a)
----------------------------------------------------------------------------------------------------
#輸出結果爲
[(10,)(20,)(30,)]

實例6

#類型字段名可以用於存儲實際的age列
import numpy as np
dt=np.dtype([('age',np.int8)])
a=np.array([(10,),(20,),(30,)],dtype=dt)
print(a['age'])
-------------------------------------------------------------------------------------------------------
#輸出結果爲
[10 20 30]

下面我們定義一個結構化數據類型student,包含字符串字段name,整數字段age,及浮點字段marks,並將這個dtype應用到ndarray對象

實例7

import numpy as np
student=np.dtype([('name','S20'),('age','i1'),('marks','f4')])
print(student)
-------------------------------------------------------------------------------------------------------
#輸出結果爲
[('name','S20'),('age','i1'),('marks','<f4')]

實例8

import numpy as np
student=np.dtype([('name','S20'),('age','i1'),('marks','f4')])
a=np.array([('abc',21,50),('xyz',18,75)],dtype=student)
print(a)
----------------------------------------------------------------------------------------------------
#輸出結果爲[('abc',21,50.0),('xyz',18,75.0)]

在這裏插入圖片描述

發佈了60 篇原創文章 · 獲贊 21 · 訪問量 6983
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章