NumPy 数据类型

原文:https://www.studytonight.com/numpy/python-numpy-data-types

在本教程中,我们将介绍 Numpy 库中的数据类型。

在 Numpy 中,数组的所有项都是数据类型对象,也称为 NumPy 数据类型。数据类型对象用于实现一个数组对应的固定大小的内存

它主要为我们提供以下信息:

  • 它为我们提供了关于数据类型(即integerfloat或 Python object)的信息

  • 它为我们提供了关于数据大小的信息

  • 它告诉我们字节顺序(小端或大端)

  • 在结构化类型的情况下,它告诉我们字段的名称,每个字段数据类型,以及每个字段所取的内存块部分。

  • 在这种情况下,如果数据类型是子阵列,它会告诉我们它的形状和数据类型

在这种情况下,字节顺序仅由数据类型的前缀“”决定。其中符号“编码是小端(最低有效字节存储在最小地址中),符号“>”表示编码是大端(最高有效字节存储在最小地址中)。

num py〔t0〕对象

下面给出了创建dtype对象所需的语法:

numpy.dtype(object, align, copy)

以下是上述构造器的参数描述:

  • 对象: 此参数用于表示要转换为数据类型的对象。

  • align: 这是一个可选参数,用于向字段添加填充,以匹配 C 编译器为类似的 C 结构输出的内容。该参数可以设置为任何布尔

  • 副本: 该参数用于创建dtype对象的副本,也是可选的参数。

NumPy 库主要提供比 Python 提供的范围更高的数值数据类型。下表列出了数字数据类型:

| 塞内加尔 | 数据类型 | 描述 | | one | bool_ | 这用于表示指示真或假的布尔值。它以字节形式存储。 | | Two | int_ | 这是整数的默认类型。它与 C 语言中主要包含 64 位或 32 位整数的长类型相同。 | | three | intc | 这类似于 C 整数(c int),因为它代表 32 或 64 位 int。 | | four | intp | 这用于表示用于索引的整数。 | | five | int8 | 这是与一个字节相同的 8 位整数。该值的范围是-128 到 127。 | | six | int16 | 这是 2 字节(16 位)整数,范围是-32768 到 32767。 | | seven | int32 | 这是 4 字节(32 位)整数。范围是-2147483648 到 2147483647。 | | eight | int64 | 这是 8 字节(64 位)整数,范围是-9223372036854775808 到 9223372036854775807。 | | nine | uint8 | 这是一个 1 字节(8 位)无符号整数。 | | Ten | uint16 | 这是一个 2 字节(16 位)无符号整数。 | | Eleven | uint32 | 这是一个 4 字节(32 位)无符号整数。 | | Twelve | uint64 | 这是 8 字节(64 位)无符号整数。 | | Thirteen | float_ | 这与浮动 64 相同。 | | Fourteen | float16 | 这用于表示半精度浮点。为指数保留 5 位。尾数保留 10 位,符号保留 1 位。 | | Fifteen | float32 | 这用于表示单精度浮点。8 位用于指数,23 位用于尾数,1 位用于符号。 | | Sixteen | float64 | 这用于表示双精度浮点。11 位用于指数,52 位用于尾数,1 位用于符号。 | | Seventeen | complex_ | 这与 complex128 相同。 | | Eighteen | complex64 | 这用于表示复数,其中实部和虚部各占 32 位。 | | Nineteen | complex128 | 这用于表示复数,其中实部和虚部各占 64 位。 |

下面给出了用于在 Numpy 中表示dtype的字符列表:

  • i -整数

  • b - 布尔值

  • u -无符号整数

  • f -浮动

  • c -复杂浮动

  • m时距

  • M - 日期时间

  • O -对象

  • S -弦

  • U - 统一码字符串

  • V -其他类型的固定内存块(void)

现在是时候深入研究一些例子了。

例 1:

在下面给出的例子中,我们将尝试找出包含字符串的数组的数据类型:

import numpy as np

ar1 = np.array(['chair', 'book', 'notebook'])
print(ar1.dtype)

< U8

例 2:

在下面给出的例子中,我们将构造一个数据类型对象。这里需要注意的是,数据类型对象主要是numpy.dtype类的一个实例,也可以使用numpy.dtype函数创建。让我们看看:

import numpy as np 

dt1 = np.dtype(np.int64) 
print (dt1)

int64

例 3:

而不是使用 int8、int16、int32、int64 等。通常,使用字符串“i1”、“i2”、“i3”和“i4”等更简单的表示是优选的。现在我们将看到一个与此相关的示例:

import numpy as np 

a = np.dtype('i4')
print (a)

int32

例 4:

在下面的例子中,我们将创建一个结构化数据类型,然后将其应用于一个ndarray对象:

import numpy as np 

# info with ket and value
a = np.dtype([('rollno',np.int16)]) 
print(a)

a = np.array([(101,),(201,),(301,)], dtype = a) 
print (a)

[(‘roll no’,<I2’] [(101,)(201,)(301,]

示例 5 -更改数据类型:

在下面给出的示例中,我们将使用int作为参数值,将数据类型从float更改为integer:

import numpy as np

ar= np.array([1.1, 2.1, 3.1])

newarr = ar.astype(int)

print(newarr)
print(newarr.dtype)

【1 2 3】 int 32

摘要

在本教程中,我们介绍了数组中数据类型的概念。我们看到了如何使用dtype对象来指定值的数据类型、语法以及dtype对象所需的参数。我们还介绍了各种数字数据类型,以及几个供您理解的示例。