Python 数据类型


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- 统一码字符串
  • 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)
亲自试一试 »

为了i,u,f,SU我们也可以定义尺寸。

示例

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

import numpy as np

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

print(arr)
print(arr.dtype)
亲自试一试 »

如果值无法转换怎么办?

如果给定的类型中的元素无法进行强制转换,则 NumPy 将引发 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)
亲自试一试 »

通过练习测试一下

练习:

NumPy 使用字符来表示以下每种数据类型,是哪一种?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datetime
 = object
 = string

开始练习