Python NumPy教程之資料類型對象

WBOY
發布: 2022-08-29 20:05:47
轉載
1364 人瀏覽過

【相關推薦:Python3影片教學

每個 ndarray 都有一個關聯的資料類型 (dtype) 物件。這個資料類型物件(dtype)告訴我們數組的佈局。這意味著它為我們提供了以下資訊:

  • 資料類型(整數、浮點數、Python 物件等)
  • 資料大小(位元組數)
  • 資料的位元組順序(小端或大端)
  • 如果資料型別是子數組,它的形狀和資料型別是什麼。

ndarray 的值儲存在緩衝區中,可以將其視為連續的記憶體位元組區塊。所以這些位元組將如何被解釋由dtype物件給出。

建構資料型別(dtype)物件

資料型別物件是numpy.dtype 類別的實例,可以使用numpy.dtype.

參數:

obj: 要轉換為資料型別物件的物件。

align : [bool, optional] 在欄位中加入填滿以符合 C 編譯器為類似 C 結構輸出的內容。

copy : [bool, optional] 製作資料類型物件的新副本。如果為 False,則結果可能只是對內建資料類型物件的參考。

# Python 程序创建数据类型对象
import numpy as np
 
# np.int16 被转换为数据类型对象。
print(np.dtype(np.int16))
登入後複製

輸出:

int16

# Python 程序创建一个包含 32 位大端整数的数据类型对象
import numpy as np
 
# i4 表示大小为 4 字节的整数
# > 表示大端字节序和
# < 表示小端编码。
# dt 是一个 dtype 对象
dt = np.dtype(&#39;>i4&#39;)
 
print("Byte order is:",dt.byteorder)
 
print("Size is:", dt.itemsize)
 
print("Data type is:", dt.name)
登入後複製

輸出:

Byte order is: >
Size is: 4
Name of data type is: int32

類型說明符(上述情況下為i4)可以採用不同的形式:

b1、i1、i2、i4、i8、u1、u2、u4、u8、f2、f4、f8、c8、c16、a(表示位元組、整數、無符號整數、浮點數、指定位元組長度的複數和定長字串)

int8,...,uint8,...,float16, float32, float64, complex64, complex128(這次是位元大小)

注意:  dtype 與type 不同。

# 用于区分类型和数据类型的 Python 程序。
import numpy as np
 
a = np.array([1])
 
print("type is: ",type(a))
print("dtype is: ",a.dtype)
登入後複製

輸出:

type is:    
dtype is:  int32

#具有結構化陣列的資料型別物件

資料類型物件對於建立結構化陣列很有用。結構化數組是包含不同類型資料的數組。可以藉助欄位存取結構化數組。

欄位就像是為物件指定名稱。在結構化陣列的情況下,dtype 物件也會是結構化的。

# 用于演示字段使用的 Python 程序
import numpy as np
 
# 一种结构化数据类型,包含一个 16 字符的字符串(在“name”字段中)和两个 64 位浮点数的子数组(在“grades”字段中)
 
dt = np.dtype([(&#39;name&#39;, np.unicode_, 16),
               (&#39;grades&#39;, np.float64, (2,))])
 
# 具有字段等级的对象的数据类型
print(dt[&#39;grades&#39;])
 
# 具有字段名称的对象的数据类型
print(dt[&#39;name&#39;])
登入後複製

輸出:

('

# Python 程序演示了数据类型对象与结构化数组的使用。
import numpy as np
 
dt = np.dtype([(&#39;name&#39;, np.unicode_, 16),
               (&#39;grades&#39;, np.float64, (2,))])
 
# x 是一个包含学生姓名和分数的结构化数组。
# 学生姓名的数据类型是np.unicode_,分数的数据类型是np.float(64)
x = np.array([(&#39;Sarah&#39;, (8.0, 7.0)),
              (&#39;John&#39;, (6.0, 7.0))], dtype=dt)
 
print(x[1])
 
print("Grades of John are: ", x[1][&#39;grades&#39;])
print("Names are: ", x[&#39;name&#39;])
登入後複製

輸出:

('John', [ 6.,  7.])
Grades of John are:  [ 6.  7.]
Names are:  ['Sarah' 'John']

【相關推薦:Python3影片教學

以上是Python NumPy教程之資料類型對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板