Numpy 03 資料型別

2022-01-26 12:31:04 字數 4048 閱讀 5143

numpy 支援的資料型別比 python 內建的型別要多很多,基本上可以和 c 語言的資料型別對應上,其中部分型別對應為 python 內建的型別。

下表列舉了常用 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 位浮點數(實數部分和虛數部分)

numpy 的數值型別實際上是 dtype 物件的例項,並對應唯一的字元,包括 np.bool_,np.int32,np.float32,等等。

資料型別物件是用來描述與陣列對應的記憶體區域如何使用,這依賴如下幾個方面:

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

dtype 物件構造

numpy.dtype(object, align, copy)

例項 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('')

print(dt)

輸出結果為:

int32
下面例項展示結構化資料型別的使用,型別欄位和對應的實際型別將被建立。

例項 4

# 首先建立結構化資料型別

import

numpy as np

dt = np.dtype([('

age'

,np.int8)])

print(dt)

輸出結果為:

[(

'age'

,'i1'

)]

例項 5

# 將資料型別應用於 ndarray 物件

import

numpy as npdt= 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'])

輸出結果為:

[

102030]

例項 7:定義乙個結構化資料型別 student,包含字串字段 name,整數字段 age,及浮點字段 marks。

import

numpy as np

student = np.dtype([('

name

','s20

'), ('

age', '

i1'), ('

marks

', 'f4'

)])

print(student)

輸出結果為:

[(

'name'

,'s20'),(

'age'

,'i1'),(

'marks'

,')]

例項 8:並將這個 dtype 應用到 ndarray 物件。

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

)]

每個內建型別都有乙個唯一定義它的字元**,如下:

字元對應型別

b布林型

i(有符號) 整型

u無符號整型 integer

f浮點型

c複數浮點型

mtimedelta(時間間隔)

mdatetime(日期時間)

o(python) 物件

s, a

(byte-)字串

uunicode

v原始資料 (void)

Numpy 03 轉置和軸對換

github部落格傳送門 傳送門numpy 01 建立 指定資料型別 檢視維度和資料型別 簡單的數 算 numpy 02 索引和切片 numpy 03 轉置和軸對換 numpy 04 通用函式 numpy 05 資料處理 numpy 06 陣列的檔案輸入輸出 線性代數 arr np.arange 1...

NumPy 資料型別

numpy 支援比 python 更多種類的數值型別。下表顯示了 numpy 中定義的不同標量資料型別。序號資料型別及描述 1.bool 儲存為乙個位元組的布林值 真或假 2.int 預設整數,相當於 c 的long,通常為int32或int64 3.intc相當於 c 的int,通常為int32或...

NumPy 資料型別

numpy提供的數值型別,數值範圍比python提供的數值型別更大。numpy的數值型別,如下表所示 sn資料型別描述1 bool 布林值,取值ture false,占用乙個位元組 2int 是integer的預設型別。與c語言中的long型別相同,有可能是64位或32位。3intc 類似於c語言中...