dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息

  1. In [18]: sim1 = np.array([1,2,3],dtype=np.float64)
  2.  
  3. In [19]: sim2 = np.array([1,2,3],dtype=np.float32)
  4.  
  5. In [20]: sim1.dtype
  6. Out[20]: dtype('float64')
  7.  
  8. In [21]: sim2.dtype
  9. Out[21]: dtype('float32')

dtype是Numpy强大和灵活的原因之一。数值型dtype的命名方式相同:一个类型名(如float或int),后面跟一个用于表示各元素位长的数字。标准的双精度浮点值(既Python中的float)需要占用8字节(既64位)。因此,该类型在Numpy中就记作float64。

Numpy的数据类型

类型 类型代码 说明
int8、uint8 i1、u1 有符号和无符号的8位(1个字节)整数
int16、uint16 i2、u2 有符号和无符号的16位(2个字节)整数
int32、uint32 i4、u4 有符号和无符号的32位(4个字节)整数
int64、unint64 i8、u8 有符号和无符号的64位(8个字节)整数
float16   f2 半精度浮点数
float32 f4或f 标准的单精度浮点数
float64 f8或d 标准的双精度浮点数
float128 f16或g 扩展精度浮点数
complex64、complex128、complex256 c8、c16、c32 分别用两个32位、64位或128位浮点数表示的复数
bool   ? 存储True和False值的布尔类型
object O Python对象类型
string_ S 固定长度的字符串长度(每个字符1个字节)
unicode_ U 固定长度的unicode长度(每个字符1个字节)

可以通过ndarray的astype方法显式地转换其dtype。整数转换浮点数。

注意:调用astype无论如何都会创建出一个新的数组(原始数据的一份拷贝),即使新dtype跟老dtype相同也是如此。

  1. In [22]: sim = np.array([1,2,3,4,5])
  2.  
  3. In [23]: sim.dtype
  4. Out[23]: dtype('int64')
  5.  
  6. In [24]: float_sim = sim.astype(np.float64)
  7.  
  8. In [25]: float_sim.dtype
  9. Out[25]: dtype('float64')

浮点数转换成整数,小数点部分将会被截断。

  1. In [26]: sim = np.array([3.7,-1.6,4.7,-2.3,9.0])
  2.  
  3. In [27]: sim
  4. Out[27]: array([ 3.7, -1.6, 4.7, -2.3, 9. ])
  5.  
  6. In [28]: sim.astype(np.int32)
  7. Out[28]: array([ 3, -1, 4, -2, 9], dtype=int32)

字符串全是数字,可以用astype将其转换为数值形式。

  1. In [31]: number_strings = np.array(['1.26','-8','-4.6'],dtype=np.string_)
  2.  
  3. In [32]: number_strings.astype(np.float64)
  4. Out[32]: array([ 1.26, -8. , -4.6 ])

还可以用简洁的代码来表示dtype。

  1. In [33]: empty_uint32 = np.empty(8,dtype='u4')
  2.  
  3. In [34]: empty_uint32
  4. Out[34]:
  5. array([ 0, 1072693248, 1717986918, 1073899110, 0,
  6. 1074790400, 0, 1075052544], dtype=uint32)

ndarray数据类型的更多相关文章

  1. ndarray数据类型及转换

    ndarray数据类型 Ndarray的基本数据类型如下图所示,数据类型的命名采用“类型名+数字”的形式表示,数字表示数据的比特位长.在计算机中比特位bit是表示数据最小的单位,1个字节Byte的长度 ...

  2. Numpy:ndarray数据类型和运算

    Numpy的ndarray:一种多维数组对象 N维数组对象,该对象是一个快速而灵活的大数据集容器,nadarry是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的.每个数组都有一个 ...

  3. NumPy学习_01 ndarray相关概念

    1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...

  4. NumPy笔记-ndarray

    ndarray,N维数组对象(矩阵) 所有元素必须是相同类型 ndim属性,维度个数 shape属性,各维度大小 dtype属性,数据类型 创建ndarray np.array(collection) ...

  5. NumPy基础:数组和矢量计算

    今天被老板fire了,还是继续抄书吧,安抚我受伤的小心脏.知识还是得慢慢积累,一步一个脚印,这样或许才是最快的捷径. ------2015-2-16-------------------------- ...

  6. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  7. NumPy的基本用法

    NumPy简介:NumPy是高性能科学计算和数据分析的基础包.是pandas等其他各种工具的基础NumPy主要功能:ndarray,一个多维数组结构,高效且节省空间无需循环对数组数据进行快速运算的数学 ...

  8. Python科学计算基础包-Numpy

    一.Numpy概念 Numpy(Numerical Python的简称)是Python科学计算的基础包.它提供了以下功能: 快速高效的多维数组对象ndarray. 用于对数组执行元素级计算以及直接对数 ...

  9. 金融量化分析【day110】:NumPy多维数组

    一.Numpy简介 NumPy 是高性能科学计算和数据分析的基础包,它是pandas等其他各种工具的基础 1.主要功能 1.ndarray,一个多维数组结构,高效且节省空间 2.无序循环对整组数据进行 ...

随机推荐

  1. android数据保存之greendao

    有时我们的数据属于保存到数据库,对于Android应用和IOS应用,我们一般都会使用SQLite这个嵌入式的数据库作为我们保存数据的工具.由于我们直接操作数据库比较麻烦,而且管理起来也非常的麻烦,以前 ...

  2. 【一天一道LeetCode】#9. Palindrome Number

    一天一道LeetCode系列 (一)题目 Determine whether an integer is a palindrome. Do this without extra space. Some ...

  3. LeetCode之“字符串”:最长回文子串

    题目要求: 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串.例如,给出字符串 "abcdzdcab",它的最长回文子串为 & ...

  4. Leetocde_290_Word Pattern

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/49717803 Given a pattern and a ...

  5. STM32之使用库函数驱动LED灯

    一.熟悉GPIO结构体 以下这个结构体是我从官方手册中获取的: typedef struct { u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMod ...

  6. Linux 系统应用编程——标准I/O

    标准I/O的由来         标准I/O指的是ANSI C 中定义的用于I/O操作的一系列函数. 只要操作系统安装了C库,标准I/O函数就可以调用.换句话说,如果程序中使用的是标准I/O函数,那么 ...

  7. 抛开rails使用ActiveRecord连接数据库

    今天是大年三十,明天就正式进入羊年鸟,给所有程序猿(媛)同人拜个年吧!祝大家身体健康,事业有成,财源广进哦! 话归正题,以前都是在rails中使用数据库,或者在rails的console中使用:我们如 ...

  8. linux 常见命令及说明杂记

    systemctl 命令: systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体.示例:systemctl is-enabled iptables.se ...

  9. tomcat 工作原理

    Tomcat原理 分类: TOMCAT2009-05-17 22:25 4366人阅读 评论(3) 收藏 举报 tomcatexceptionsocketstringservernull Tomcat ...

  10. complex figure

    1/z   ----direct by MATLAB exp(z)    by QT logZ       by  QT 1/z      用QT画的 -----2018-03-17--------- ...