網站首頁 編程語言 正文
每個 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('>i4') 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([('name', np.unicode_, 16), ('grades', np.float64, (2,))]) # 具有字段等級的對象的數據類型 print(dt['grades']) # 具有字段名稱的對象的數據類型 print(dt['name'])
輸出:
('<f8', (2,))
# Python 程序演示了數據類型對象與結構化數組的使用。 import numpy as np dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))]) # x 是一個包含學生姓名和分數的結構化數組。 # 學生姓名的數據類型是np.unicode_,分數的數據類型是np.float(64) x = np.array([('Sarah', (8.0, 7.0)), ('John', (6.0, 7.0))], dtype=dt) print(x[1]) print("Grades of John are: ", x[1]['grades']) print("Names are: ", x['name'])
輸出:
('John', [ 6., ?7.])
Grades of John are: ?[ 6. ?7.]
Names are: ?['Sarah' 'John']
原文鏈接:https://juejin.cn/post/7136106405836095525
相關推薦
- 2022-11-30 React之錯誤邊界?Error?Boundaries示例詳解_React
- 2024-01-15 Mybatis 開啟控制臺打印sql語句
- 2023-03-19 Android全面屏適配與判斷超詳細講解_Android
- 2022-05-22 在Centos?8.0中安裝Redis服務器的教程詳解_Redis
- 2022-12-05 Flutter控制組件顯示和隱藏三種方式詳解_Android
- 2022-09-05 詳解apache編譯安裝httpd-2.4.54及三種風格的init程序特點和區別_Linux
- 2022-04-17 jQuery的基本使用
- 2022-06-08 FreeRTOS實時操作系統的任務創建和刪除_操作系統
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支