Python NumPy教程之数据类型对象详解

 更新时间:2022年08月29日 08:17:25   作者:海拥  
每个 ndarray 都有一个关联的数据类型 (dtype) 对象。这个数据类型对象(dtype)告诉我们数组的布局。本文将通过示例详细讲讲NumPy的数据类型对象,需要的可以参考一下

每个 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']

到此这篇关于Python NumPy教程之数据类型对象详解的文章就介绍到这了,更多相关Python NumPy数据类型对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python设置在shell脚本中自动补全功能的方法

    Python设置在shell脚本中自动补全功能的方法

    今天小编就为大家分享一篇Python设置在shell脚本中自动补全功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python NumPy教程之数据类型对象详解

    Python NumPy教程之数据类型对象详解

    每个 ndarray 都有一个关联的数据类型 (dtype) 对象。这个数据类型对象(dtype)告诉我们数组的布局。本文将通过示例详细讲讲NumPy的数据类型对象,需要的可以参考一下
    2022-08-08
  • Python字典dict常用内置函数详解

    Python字典dict常用内置函数详解

    这篇文章主要介绍了Python字典dict常用内置函数详解,dict是Python中的一种内置数据类型,它是一种键值对的集合,类似于Java中的Map或其他语言中的字典,需要的朋友可以参考下
    2023-07-07
  • 详解Django中六个常用的自定义装饰器

    详解Django中六个常用的自定义装饰器

    这篇文章主要介绍了详解Django中六个常用的自定义装饰器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • opencv改变imshow窗口大小,窗口位置的方法

    opencv改变imshow窗口大小,窗口位置的方法

    下面小编就为大家分享一篇opencv改变imshow窗口大小,窗口位置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 利用python批量给云主机配置安全组的方法教程

    利用python批量给云主机配置安全组的方法教程

    这篇文章主要给大家介绍了利用python批量给云主机配置安全组的方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • Python进行PDF文件拆分的示例详解

    Python进行PDF文件拆分的示例详解

    在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分吧
    2025-02-02
  • python 移动图片到另外一个文件夹的实例

    python 移动图片到另外一个文件夹的实例

    今天小编就为大家分享一篇python 移动图片到另外一个文件夹的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python的tkinter布局之简单的聊天窗口实现方法

    python的tkinter布局之简单的聊天窗口实现方法

    这篇文章主要介绍了python的tkinter布局之简单的聊天窗口实现方法,对于tkinter用法做了初步的介绍与应用展示,需要的朋友可以参考下
    2014-09-09
  • 利用Python查看目录中的文件示例详解

    利用Python查看目录中的文件示例详解

    这篇文章主要给大家介绍了关于利用Python查看目录中的文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08

最新评论