NumPy 数据类型

Python 中的数据类型

默认情况下,Python 具有以下数据类型:

  • strings - 用于表示文本数据,文本在引号下给出。例如 "ABCD"
  • integer - 用于表示整数。例如 -1, -2, -3
  • float - 用于表示实数。例如 1.2, 42.42
  • boolean - 用于表示 True 或 False
  • complex - 用于表示复数。例如 1.0 + 2.0j, 1.5 + 2.5j

NumPy 中的数据类型

NumPy 具有一些额外的数据类型,并使用一个字符来引用数据类型,如 i 表示整数,u 表示无符号整数等。

以下是 NumPy 中所有数据类型的列表以及用于表示它们的字符。

  • i - 整数
  • b - 布尔值
  • u - 无符号整数
  • f - 浮点数
  • c - 复数浮点数
  • m - 时间差
  • M - 日期时间
  • O - 对象
  • S - 字符串
  • U - Unicode 字符串
  • V - 用于其他类型(void)的固定内存块

检查数组的数据类型

NumPy 数组对象有一个名为 dtype 的属性,可返回数组的数据类型:

实例

获取数组对象的数据类型:

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr.dtype)

亲自试一试

实例

获取包含字符串的数组的数据类型:

import numpy as np

arr = np.array(['apple', 'banana', 'cherry'])

print(arr.dtype)

亲自试一试

创建具有定义数据类型的数组

我们使用 array() 函数来创建数组,此函数可以采用一个可选参数:dtype,它允许我们定义数组元素的预期数据类型:

实例

创建数据类型为字符串的数组:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='S')

print(arr)
print(arr.dtype)

亲自试一试

对于 iufSU,我们也可以定义大小。

实例

创建数据类型为 4 字节整数的数组:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='i4')

print(arr)
print(arr.dtype)

亲自试一试

如果值无法转换该怎么办?

如果给定了一个无法转换元素的类型,NumPy 将引发 ValueError。

ValueError:在 Python 中,当传递给函数的参数类型意外/不正确时,将引发 ValueError。

实例

像 'a' 这样的非整数字符串无法转换为整数(将引发错误):

import numpy as np

arr = np.array(['a', '2', '3'], dtype='i')

亲自试一试

转换现有数组的数据类型

更改现有数组的数据类型的最佳方法是使用 astype() 方法创建数组的副本。

astype() 函数创建数组的副本,并允许您指定数据类型作为参数。

数据类型可以使用字符串来指定,如 'f' 表示浮点数,'i' 表示整数等,或者您可以直接使用数据类型,如 float 表示浮点数,int 表示整数。

实例

通过使用 'i' 作为参数值,将数据类型从浮点数更改为整数:

import numpy as np

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

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

亲自试一试

实例

通过使用 int 作为参数值,将数据类型从浮点数更改为整数:

import numpy as np

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

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

亲自试一试

实例

将数据类型从整数更改为布尔值:

import numpy as np

arr = np.array([1, 0, 3])

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

亲自试一试