当我们使用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()
函数的完整攻略。