NumPy 数据类型
Python 中的数据类型
默认情况下,Python 具有以下数据类型
字符串
- 用于表示文本数据,文本用引号括起来。例如:"ABCD"整数
- 用于表示整数。例如:-1,-2,-3浮点数
- 用于表示实数。例如:1.2,42.42布尔值
- 用于表示 True 或 False。复数
- 用于表示复数。例如: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(['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)
自己尝试 »
对于 i
,u
,f
,S
和 U
,我们也可以定义大小。
示例
创建一个数据类型为 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)
自己尝试 »