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

 In [18]: sim1 = np.array([1,2,3],dtype=np.float64)

 In [19]: sim2 = np.array([1,2,3],dtype=np.float32)

 In [20]: sim1.dtype
Out[20]: dtype('float64') In [21]: sim2.dtype
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相同也是如此。

 In [22]: sim = np.array([1,2,3,4,5])

 In [23]: sim.dtype
Out[23]: dtype('int64') In [24]: float_sim = sim.astype(np.float64) In [25]: float_sim.dtype
Out[25]: dtype('float64')

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

 In [26]: sim = np.array([3.7,-1.6,4.7,-2.3,9.0])

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

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

 In [31]: number_strings = np.array(['1.26','-8','-4.6'],dtype=np.string_)

 In [32]: number_strings.astype(np.float64)
Out[32]: array([ 1.26, -8. , -4.6 ])

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

 In [33]: empty_uint32 = np.empty(8,dtype='u4')

 In [34]: empty_uint32
Out[34]:
array([ 0, 1072693248, 1717986918, 1073899110, 0,
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. 数据结构基础(2) --顺序查找 & 二分查找

    顺序查找 适用范围: 没有进行排序的数据序列 缺点: 速度非常慢, 效率为O(N) //实现 template <typename Type> Type *sequenceSearch(T ...

  2. Java进阶(十)java tomcat中context配置

    Tomcat中Context的配置 问题: java tomcat中<context> docBase属性是什么意思? 元素的属性: path:指定访问该Web应用的URL入口.  doc ...

  3. 推荐大家在GitHub 上值得关注学习的 iOS 开源项目

    GitHub上有很多不错的iOS开源项目,和大家特别推荐以下几个项目: 1. ReactiveCocoa GitHub链接:ReactiveCocoa/ReactiveCocoa GitHub自家的函 ...

  4. iOS 10正式发布:十大新功能,更注重人性化

    6月14日凌晨消息,苹果公司举行2016年WWDC全球开发者大会,介绍了watch OS.tv OS.OS X以及iOS 10系统的新特性. 据苹果介绍,iOS 10在锁屏.Siri.地图等十个各方面 ...

  5. 属性动画之ValueAnimator

    原文链接:http://blog.csdn.net/guolin_blog/article/details/43536355

  6. Android 实现高仿iOS桌面效果之可拖动的GridView(上)

    转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40074663,作者:skay      最近项目中遇到一个LIstview的拖动效 ...

  7. 为什么我们要使用ssh框架技术,及感想

    前言: 在公司从C++转向Java Web方向大概有3个月(11月初-1月底)了.三个月前对Java和Web还几乎是零基础.然后从安装Eclipse,MySQL,tomcat开始,到学习HTML/CS ...

  8. uc伯克利人工分割图像.seg文件解析

    之前看到  http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/segbench/ 提供的人工图像分割的.seg格式 ...

  9. how tomcat works 读书笔记 十一 StandWrapper 下

    StandardWrapperValve StandardWrapperValve是StandardWrapper的基础阀,主要完成了三个工作. 1 调用StandardWrapper的allocat ...

  10. LeetCode(41)-Rectangle Area

    题目: Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defin ...