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. Cocos2d中update与fixedUpdate的区别(二)

    关于update:方法的目的 update:方法的目的在于给你一个更新你的游戏(你游戏中的所有对象,标签等待)的机会,在它们被渲染到屏幕之前. 换句话说,如果你想要一些游戏对象显示在屏幕的特定位置,你 ...

  2. Linux 用户打开进程数的调整

    Linux 用户打开进程数的调整 参考文章: 关于RHEL6中ulimit的nproc限制(http://www.cnblogs.com/kumulinux/archive/2012/12/16/28 ...

  3. WebService开发指南

    WebServiceInAurora Web Service Web Service是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作.在Aurora框架 ...

  4. UIScrollView的无限左滑轮播一点也不难

    UIScrollView的轮播在如今的app中用得十分广泛,最初实现的时候方式比较拙劣,滚动到最后一个视图时再返回到第一个看起来非常的不连贯. 今天查询UIScrollView轮播资料,总结两种比较喜 ...

  5. SharePoint2010搜索的简单设置

    1.  开启搜索服务,管理中心 – 应用程序管理 – 服务应用程序 – 管理服务器上的服务 2.  点击进去,启动"SharePoint Foundation搜索"."S ...

  6. javascript中的instanceof运算符

    instanceof运算符希望左操作数是一个对象,右操作数表示对象的类:如果左侧的对象是右侧类的实例,则返回true,否则返回false.由于js中对象的类是通过初始化它们的构造函数来定义的,因此in ...

  7. MATLAB坐标系中绘制图片

    MATLAB坐标系中绘制图片 方法一 使用图片坐标循环的方式,代码如下. clear,clc,close all tic; map=imbinarize(imread('map.bmp'));%map ...

  8. webapi从入门到放弃(一)OWIN 自寄宿模式

     1.创建web空项目 2.创建完如图 3.安装如下程序包Microsoft.AspNet.WebApi.Core (5.2.4)Microsoft.Owin.Host.SystemWeb (4.0. ...

  9. Spring Cloud项目中通过Feign进行内部服务调用发生401\407错误无返回信息的问题

    问题描述 最近在使用Spring Cloud改造现有服务的工作中,在内部服务的调用方式上选择了Feign组件,由于服务与服务之间有权限控制,发现通过Feign来进行调用时如果发生了401.407错误时 ...

  10. 我如何踏上IT路

    第一次开技术博客,第一篇博文就聊聊自己是如何走上IT这条路的.一直听人说"搞IT的"颇含贬低色彩,也有IT前辈奉劝不要轻易踏上这条路,但最终我这个本是化学化工专业的门外汉还是义无反 ...