numpy基础之ndarray的数据类型dtype

2024-01-25 00:28

本文主要是介绍numpy基础之ndarray的数据类型dtype,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 numpy基础之ndarray的数据类型dtype

ndarray的数据类型dtype含有ndarray将一块内存解释为特定数据类型所需的信息。

1.1 ndarray数据类型

数值型dtype的命名规则:类型名+元素长度。

ndarray是一个通用的同构数据多维容器,即同一ndarray对象的所有元必须素是相同的数据类型。

numpy.array()未指定数据类型时,会为新建的ndarray数组推断一个比较合适的数据类型。

NO类型类型代码描述
1int8、uint8i1、u1有符号和无符号的8位(1字节)整数
2int16、uint16i2、u2有符号和无符号的16位(2字节)整数
3int32、uint32i4、u4有符号和无符号的32位(4字节)整数
4int64、uint64i8、u8有符号和无符号的64位(8字节)整数
5float16f2半精度浮点数
6float32f4或f标准单精度浮点数。与C的float兼容
7float64f8或d标准双精度浮点数。与C的double和python的float兼容。
8float128f16或g扩展精度浮点数
9complex64、complex128、complex256c8、c16、c32分别用两个32位、64为、128位浮点数表示的复数
10bool?存储True和False值的布尔类型
11objectOpython对象类型
12string_Sn固定长度的字符串类型(每个字符1个字节)。比如,要创建一个长度为10的字符串,应使用S10
13unicode_Un固定长度的unicode类型(字节数由平台决定)。比如,要创建一个长度为10的unicode,应使用U10

1.2 dtype

用法

import numpy as np
arr=np.array(object)
arr.dtype

描述

ndarray的数据类型存储在dtype属性,通过点号运算获取。

示例

>>> import numpy as np
>>> arr1=np.array([1,2,3])
>>> arr1
array([1, 2, 3])
# 通过 ndarray.dtype 获取ndarray的数据类型
>>> arr1.dtype
dtype('int32')
# array()未指定dtype,同时有浮点数和整数
# array会推断较合适的数据类型 float
>>> arr2=np.array([1.8,2,3])
>>> arr2
array([1.8, 2. , 3. ])
>>> arr2.dtype
dtype('float64')

1.3 astype

用法

ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)

描述

显式的将数组的dtype转换为指定类型,返回一个新的数组,原数组不变。

(1) 通过np.数据类型指定dtype;

(2) 通过简洁的类型代码指定dtype;

(3) 通过其他数组的数据类型ndarray.dtype指定dtype;

(4) 浮点数转整数类型,小数部分被截断删除;

(5) 元素都为数字的字符串数组,可以转为数值数组。

示例-np.数类型指定dtype,原数组不变

>>> import numpy as np
>>> arr=np.array([1,2,3])
>>> arr
array([1, 2, 3])
>>> arr.dtype
dtype('int32')
# astype() 将数组的dtype转为指定类型
>>> float_arr=arr.astype(np.float64)
>>> float_arr
array([1., 2., 3.])
>>> float_arr.dtype
dtype('float64')
# 原数组不变
>>> arr
array([1, 2, 3])
>>> arr.dtype
dtype('int32')

示例-浮点数转整数

>>> arr=np.array([1.23,2.56,3.89])
>>> arr
array([1.23, 2.56, 3.89])
>>> arr.dtype
dtype('float64')
# 浮点数转为整数,小数被截断删除
>>> int_arr=arr.astype(np.int32)
>>> int_arr
array([1, 2, 3])
>>> int_arr.dtype
dtype('int32')

示例-数字字符串转数字数组

# 元素都为数字字符串
>>> numstr_arr=np.array(['1','2','3'])
>>> numstr_arr
array(['1', '2', '3'], dtype='<U1')
>>> numstr_arr.dtype
dtype('<U1')
# 转换为数值类型
>>> int_arr=numstr_arr.astype(np.int32)
>>> int_arr
array([1, 2, 3])
>>> int_arr.dtype
dtype('int32')
# 元素有非数字字符串
>>> str_arr=np.array(['1','a','3'])
>>> str_arr
array(['1', 'a', '3'], dtype='<U1')
>>> str_arr.dtype
dtype('<U1')
# 不可转换为数值类型,报 ValueError
>>> str_arr.astype(np.int32)
Traceback (most recent call last):File "<pyshell#43>", line 1, in <module>str_arr.astype(np.int32)
ValueError: invalid literal for int() with base 10: 'a'

示例-类型代码和其他数组的dtype转换

# 通过简洁的类型代码指定 dtype
>>> arr=np.array([1,2,3],dtype='f4')
>>> arr
array([1., 2., 3.], dtype=float32)
>>> arr.dtype
dtype('float32')
>>> intArr=arr.astype('i2')
>>> intArr
array([1, 2, 3], dtype=int16)
>>> intArr.dtype
dtype('int16')
# 通过 ndarray.dtype 指定 dtype
>>> floatArr=intArr.astype(arr.dtype)
>>> floatArr
array([1., 2., 3.], dtype=float32)
>>> floatArr.dtype
dtype('float32')

这篇关于numpy基础之ndarray的数据类型dtype的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/641534

相关文章

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字