Python numpy.dtype.subdtype()函数

  • Post category:Python

当我们使用numpy数组时,我们需要指定其元素的数据类型。numpy提供了dtype类表示数据类型。

但是,我们有时候需要定义一些子数据类型。这时候可以使用numpy中的subdtype()函数。它让我们可以定义一组元素的共同类型。下面是numpy.dtype.subdtype()函数的完整攻略:

函数签名

numpy.dtype.subdtype(dtype[, shape])

参数说明:

dtype:数据类型。

shape:子数据类型的形状。

返回值说明:

返回一个元组,元组的第一个元素是数据类型,第二个元素是形状。

示例说明:

示例1:获取数组中元素的子数据类型

import numpy as np

arr = np.array([(1,2),(3,4)], dtype=[('a','<i4'),('b','<i4')])
sub_dtype = arr.dtype.subdtype

print("子数据类型是:",sub_dtype)

运行结果:

子数据类型是: ({'names':['a','b'],'formats':['<i4','<i4'],'offsets':[0,4],'itemsize':8}, (2,))

解析:

此处我们定义了一个复合数据类型的numpy数组,数组有两个元素,每个元素是一个二元组。

在此处我们定义了一个sub_dtype变量,用于获取arr数组元素的dtype的子数据类型。在本示例中,我们可以看到 返回的元组有两个元素,第一个元素是定义的数据类型。数组arr是一个二维数组,第二个元素表示元素数量,该值为2。

示例2:获取数组中元素的子数据类型

import numpy as np

arr = np.zeros((2,3),dtype=np.int)
sub_dtype = arr.dtype.subdtype

print("子数据类型是:",sub_dtype)

运行结果:

子数据类型是: (dtype('int32'), (2, 3))

解析:

此处我们定义了一个numpy数组,arr.dtype返回的数据类型是int32。

在此处我们定义了一个sub_dtype变量,用于获取arr数组元素的dtype的子数据类型。在本示例中,我们可以看到 返回的元组有两个元素,第一个元素是定义的数据类型,第二个元素是数组arr的shape,二维数组的shape是(2,3)。

这就是numpy.dtype.subdtype()函数的完整攻略。