1、Python中的数据类型
默认情况下,Python具有以下数据类型:
strings
-用于表示文本数据,文本用引号引起来。 例如。 “A B C D”integer
-用于表示整数。 例如。 -1,-2,-3float
-用于表示实数。 例如。 1.2、42.42boolean
-用于表示True或False。complex
-用于以复数形式表示数字。 例如, 1.0 + 2.0j,1.5 + 2.5j
2、NumPy中数据类型
NumPy有一些额外的数据类型,并且引用一个字符的数据类型,例如i
用于整数,u
用于无符号整数等。
以下是NumPy中所有数据类型的列表以及用于表示它们的字符。
i
-整数b
-布尔值u
-无符号整数f
-浮动c
-复杂的浮点数m
-timedeltaM
-日期时间O
-对象S
-字符串U
-Unicode字符串V
-其他类型的固定内存块(void)
3、判断数组的数据类型
NumPy数组对象具有一个名为dtype
的属性,该属性返回数组的数据类型:
例如:
获取数组对象的数据类型:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
例如:
获取包含字符串的数组的数据类型:
import numpy as np
arr = np.array(['c', 'python', 'cjavapy'])
print(arr.dtype)
4、创建具有已定义数据类型的数组
我们使用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)
5、值不能被转换问题
如果给出了不能强制转换元素的类型,则NumPy将引发ValueError。
ValueError:在Python中,如果传递给函数的参数的类型意外/不正确,则会引发ValueError。
例如:
不能将非整数字符串(例如,'a')转换为整数(将引发错误):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
6、转换现有数组上的数据类型
更改现有数组的数据类型的最佳方法是使用astype()
方法制作该数组的副本。
astype()
函数创建数组的副本,并允许您将数据类型指定为参数。
数据类型可以使用字符串指定,例如'f'
表示浮点数,'i'
表示整数等。也可以直接使用数据类型,例如float代表浮点数,int
代表整数。
例如:
通过使用'i'
作为参数值,将数据类型从float更改为整数:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
例如:
通过使用int
作为参数值,将数据类型从float更改为整数:
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)