numpy — 数组的数据类型

  • Post author:
  • Post category:其他




一、数据类型

数据类型,即dytpe,是一个特殊的对象,它包含了ndarray需要为某一种类型数据所申明的内存块信息。



二、numpy中的数据类型

numpy数据类型



三、一些示例

引入numpy

import numpy as np


– 将整数类型转换为浮点数类型

定义一个整数类型数组

arr1= np.array([1,2,3,4,5,6])
print("-------------------")
print(arr1)
print(arr1.dtype)

转换为浮点数类型

arr2= arr1.astype(np.float64) # 将整数类型换为浮点数类型
print("-------------------")
print(arr2)
print(arr2.dtype)

结果

-------------------
[1 2 3 4 5 6]
int32
-------------------
[1. 2. 3. 4. 5. 6.]
float64

  • 将浮点数类型转换为整数类型


    定义一个浮点数类型数组
arr3= np.random.rand(3,4)
print("-------------------")
print(arr3)
print(arr3.dtype)

将浮点数类型转换为整数类型

arr4= arr3.astype(np.int8) # 将浮点数类型转换为整数类型
print("-------------------")
print(arr4)
print(arr4.dtype)

结果

-------------------
[[0.73711088 0.01004312 0.03919142 0.08882122]
 [0.83891361 0.13986113 0.31991484 0.72618698]
 [0.9857005  0.65272144 0.92928238 0.84318804]]
float64
-------------------
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
int8

  • 将字符串类型数据转换为浮点数类型

定义一个字符串类型的数组

arr5=np.array(["0.15","1","5.6","5.56"])
print("-------------------")
print(arr5)
print(arr5.dtype)

将字符串类型数据转换为浮点数类型

arr6=arr5.astype(np.float32) # 将字符串类型数据转换为浮点数类型
print("-------------------")
print(arr6)
print(arr6.dtype)

结果

-------------------
['0.15' '1' '5.6' '5.56']
<U4
-------------------
[0.15 1.   5.6  5.56]
float32

  • 使用另一个数组的数据类型定义另一个数组的数据类型

定义一个整数类型的数组

arr7=np.random.random_integers(10,size=(5,6))
print("0-------------------0")
print(arr7)
print(arr7.dtype)

定义一个浮点数类型的数组,并将整数类型的数组进行转换

arr8=np.array(np.array([2.0,3.5,6.7,8.9]),dtype=np.float64)
arr7=arr7.astype(arr8.dtype) # 使用另一个数组的数据类型定义另一个数组的数据类型
print("1-------------------1")
print(arr7)
print(arr7.dtype)

结果

0-------------------0
[[10  7  9  7  9  8]
 [ 4 10 10  9  6  5]
 [ 9  3 10  1  5  6]
 [ 2  3  9  1 10  1]
 [ 3  7  5  4  1  5]]
int32
1-------------------1
[[10.  7.  9.  7.  9.  8.]
 [ 4. 10. 10.  9.  6.  5.]
 [ 9.  3. 10.  1.  5.  6.]
 [ 2.  3.  9.  1. 10.  1.]
 [ 3.  7.  5.  4.  1.  5.]]
float64

  • 使用类型代号来传入数据类型

注意:使用astype时总是生成一个新的数组,即使你传入的dtype与之前一样

arr9= np.empty(8,dtype="u4") # 使用类型代号来传入数据类型
print("-------------------")
print(arr9)
print(arr9.dtype)

结果

-------------------
[5374032 5046351 5505104 5046367 4456527 4587593 4522057 3997778]
uint32



版权声明:本文为qq_43709590原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。