📅  最后修改于: 2023-12-03 15:03:18.713000             🧑  作者: Mango
在NumPy中,在数组中存储的元素类型由其数据类型对象(dtype)表示。每个ndarray对象都有一个dtype属性,该属性指定在数组中存储的元素的数据类型。
NumPy支持各种数据类型,包括数值类型,布尔类型,对象类型以及字符串类型。可以使用numpy.dtype()函数创建自定义数据类型。
NumPy支持的主要数值类型包括:
dtype对象有以下属性:
name
: 数据类型的名称。shape
: 用于描述该数据类型的对象的形状。str
: 描述数据类型的字符串。type
: 底层数据类型对象(例如,int8表示<type 'numpy.int8'>)。kind
:字符代码,用于唯一标识数据类型的字符(例如,'i'表示整数)。以下是一些有关dtype的示例:
import numpy as np
# 创建一个整数数组
a = np.array([1, 2, 3, 4, 5], dtype=np.int32)
# 输出数组的数据类型
print(a.dtype) # 输出 int32
# 创建一个浮点数数组
b = np.array([1.0, 2.0, 3.0, 4.0, 5.0], dtype=np.float32)
# 输出数组的数据类型
print(b.dtype) # 输出 float32
# 创建一个复数数组
c = np.array([1 + 2j, 2 + 3j, 3 + 4j, 4 + 5j, 5 + 6j], dtype=np.complex64)
# 输出数组的数据类型
print(c.dtype) # 输出 complex64
自定义数据类型:
import numpy as np
# 自定义结构体数据类型
student = np.dtype([('name', 'S20'), ('age', 'i1'), ('marks', 'f4')])
# 创建一个包含结构体数据的数组
a = np.array([('John', 22, 65.5), ('Michael', 18, 75.2)], dtype=student)
# 打印数组
print(a)
# 输出一个元素
print(a[0])
以上代码将创建一个名为student
的自定义结构体数据类型,其包含name
,age
和marks
字段,分别使用字符串和浮点数类型表示。
然后,使用该自定义数据类型来创建一个包含数据的数组,该数组包含两个结构类型的数据(John和Michael)。最后,打印数组及其元素。
输出结果为:
[(b'John', 22, 65.5) (b'Michael', 18, 75.19999695)]
(b'John', 22, 65.5)
该结果表明,该数组有两个元素,每个元素包含名字,年龄和分数。元素可以按索引访问。