一文詳解Python數據分析模塊Numpy基礎數據類型

黑貓編程 發佈 2024-05-09T12:10:49.205051+00:00

Numpy簡介NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

numpy簡介

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

NumPy 是一個運行速度非常快的數學庫,主要用於數組計算,包含:

  • 一個強大的N維數組對象 ndarray
  • 廣播功能函數
  • 整合 C/C++/Fortran 代碼的工具
  • 線性代數、傅立葉變換、隨機數生成等功能

NumPy Ndarray 對象

  • NumPy 最重要的一個特點是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引
  • ndarray 對象是用於存放同類型元素的多維數組
  • ndarray 中的每個元素在內存中都有相同存儲大小的區域

numpy對象創建:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

名稱

描述

object

數組或嵌套的數列

dtype

數組元素的數據類型,可選

copy

對象是否需要複製,可選

order

創建數組的樣式,C為行方向,F為列方向,A為任意方向(默認)

subok

默認返回一個與基類類型一致的數組

ndmin

指定生成數組的最小維度

數據類型轉換

拷貝

最小維度

subok

NumPy 數據類型

名稱

描述

bool_

布爾型數據類型(True 或者 False)

int_

默認的整數類型(類似於 C 語言中的 long,int32 或 int64)

intc

與 C 的 int 類型一樣,一般是 int32 或 int 64

intp

用於索引的整數類型(類似於 C 的 ssize_t,一般情況下仍然是 int32 或 int64)

int8

字節(-128 to 127)

int16

整數(-32768 to 32767)

int32

整數(-2147483648 to 2147483647)

int64

整數(-9223372036854775808 to 9223372036854775807)

uint8

無符號整數(0 to 255)

uint16

無符號整數(0 to 65535)

uint32

無符號整數(0 to 4294967295)

uint64

無符號整數(0 to 18446744073709551615)

float_

float64 類型的簡寫

float16

半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位

float32

單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位

float64

雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位

complex_

complex128 類型的簡寫,即 128 位複數

complex64

複數,表示雙 32 位浮點數(實數部分和虛數部分)

complex128

複數,表示雙 64 位浮點數(實數部分和虛數部分)

數據類型對象 (dtype)

數據類型對象(numpy.dtype 類的實例)用來描述與數組對應的內存區域是如何使用,它描述了數據的以下幾個方面:

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

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

dtype 對象是使用以下語法構造的:

numpy.dtype(object, align, copy)

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

每個內建類型都有一個唯一定義它的字符代碼

字符

對應類型

b

布爾型

i

(有符號) 整型

u

無符號整型 integer

f

浮點型

c

複數浮點型

m

timedelta(時間間隔)

M

datetime(日期時間)

O

(Python) 對象

S, a

(byte-)字符串

U

Unicode

V

原始數據 (void)

dt = np.dtype(np.int32)
print(dt)

輸出:
int32


dt = np.dtype('i4')
print(dt)

輸出:
int32


dt = np.dtype([('age', np.int8)])
print(dt)

輸出:
[('age', 'i1')]

結構化數據類型

student = np.dtype([('name','S20'), ('age','i1'), ('score', 'f4')])
a = np.array([('xm', 10, 98.123456789), ('xh', 8, 99.111111111), ('xl', '9', 100)], dtype=student)
print(a)

輸出:
[(b'xm', 10,  98.12346 ) (b'xh',  8,  99.111115) (b'xl',  9, 100.      )]

視頻講解

關鍵字: