Python NumPy 数据类型
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
- timedeltaM
- datetimeO
- 对象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([1, 2, 3, 4])
print(arr.dtype)
示例代码:
获取包含字符串的数组的数据类型:
import numpy as np
arr = np.array(['apple', 'banana', 'cherry'])
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)
完整实例:
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)
完整实例:
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')
完整实例:
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)
完整实例:
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.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)
完整实例:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)