dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息:
import numpy as np
arr1=np.array([1,2,3],dtype=np.float64)
arr2=np.array([1,2,3],dtype=np.int32) arr1.dtype
Out[4]: dtype('float64') arr2.dtype
Out[5]: dtype('int32')
数值型dtype的命名方式相同:一个类型名(如float或int),后面跟一个用于表示各元素位长的数字。
可以通过ndarray的astype方法显式地转换其dtype:
arr=np.array([1,2,3,4,5])

arr.dtype
Out[7]: dtype('int32') float_arr=arr.astype(np.float64) float_arr.dtype
Out[9]: dtype('float64')

在本例中整数被转换为浮点数。如果将浮点数转换为整数,小数部分会被截断:

arr=np.array([3.7,-1.2,-2.6,0.5,12.9,10.1])

arr
Out[11]: array([ 3.7, -1.2, -2.6, 0.5, 12.9, 10.1]) arr.astype(np.int32)
Out[12]: array([ 3, -1, -2, 0, 12, 10])

如果字符串数组表示的全是数字,也可以用astype将其转换为数值形式:

numeric_strings=np.array(['1.25','-9.6',''],dtype=np.string_)

numeric_strings.astype(float)
Out[14]: array([ 1.25, -9.6 , 42. ])
转换过程失败,会引发一个TypeError。可以看到,写的是float而不是np.float64,numpy会将Python类型映射到等价的dtype上。
 
数组的dtype 的另外一个用法:
int_array=np.arange(10)

calibers=np.array([.22,.270,.357,.380,.44,.50],dtype=np.float64)

int_array.astype(calibers.dtype)
Out[17]: array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

也可以用简洁的类型代码来表示dtype:

empty_uint32=np.empty(8,dtype='u4')
empty_uint32
Out[21]:
array([ 43712628, 0, 68801840, 0, 1, 537528933,
112050304, 0], dtype=uint32)

读书笔记二、ndarray的数据类型的更多相关文章

  1. 《你必须知道的.NET》读书笔记二:小OO有大原则

    此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...

  2. spring揭秘 读书笔记 二 BeanFactory的对象注册与依赖绑定

    本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,而且IoC Service Pr ...

  3. ES6读书笔记(二)

    前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,现在为第二篇,本篇内容包括: 一.数组扩展 二.对象扩展 三.函数扩展 四.Set和Map数据结构 五.Reflect 本文 ...

  4. spring揭秘 读书笔记 二 BeanFactory的对象注冊与依赖绑定

    本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,并且IoC Service Pr ...

  5. 【记】《.net之美》之读书笔记(二) C#中的泛型

    前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...

  6. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  7. how tomcat works 读书笔记(二)----------一个简单的servlet容器

    app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...

  8. java读书笔记二

    这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向 ...

  9. 《MySQL技术内幕——SQL编程》读书笔记(二)——数据类型

    对数据类型的选择将影响与数据库交互的应用程序的性能. 1.通常来说,如果一个页内可以存放尽可能多的行,那么数据库的性能就越好,因此选择一个正确的数据类型至关重要. 2.另一方面,如果在数据库中创建表时 ...

随机推荐

  1. 关于Oracle中Sort Merge Join的改写

    业务场景的问题,我们有一个刷CUBE的SQL,是Oracle环境,平时跑70多分钟, 但是最近突然不动了,这个SQL需要算累计值,比如年累计客户数量. 累计值是什么意思呢?我们使用下面的数据来说明问题 ...

  2. CentOs如何找回root密码

    当CentOs的root密码忘了的时候,可以进入单用户模式,更改一下root密码就可以了. 具体操作如下 1.重启Linux后,在此界面,3秒内按下回车键 2.出现此界面 3.按e键,进入下图,然后把 ...

  3. SharpZipLib 文件/文件夹 过滤

    这里就不说压缩/解压了.网上教程太多. 主要说一下,解压时,如何过滤某些文件/文件夹 参考地址:https://github.com/icsharpcode/SharpZipLib/wiki/Fast ...

  4. HIVE了解及SQL基础命令

    hive(数据仓库工具) Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转 ...

  5. rem_2

    html{ font-size:625%; } body{ font-size:0.16rem; }

  6. springBoot和MyBatis整合中出现SpringBoot无法启动时处理方式

    在springBoot和Myatis   整合中出现springBoot无法启动   并且报以下错误 Description: Field userMapper in cn.lijun.control ...

  7. Dart编程实例 - Final 关键字

    Dart编程实例 - Final 关键字 void main() { final val1 = 12; print(val1); } 本文转自:http://codingdict.com/articl ...

  8. 管理员技术(三): 配置静态网络地址、 使用yum软件源 、 升级Linux内核、查找并处理文件、查找并提取文件内容

    一. 配置静态网络地址 目标: 本例要求为虚拟机 server 配置以下静态地址参数: 1> 主机名:server0.example.com    2> IP地址:172.25.0.11  ...

  9. CF 1076E Vasya and a Tree(线段树+树剖)

    传送门 解题思路 首先按照每个修改时\(x\)的深度\(+d\)从大到小排序,然后按照深度分层,一层一层的修改,修改的时候就直接暴力修改子树,然后每做完一层把答案都取下来,因为以后的所有修改的深度都小 ...

  10. mongo分组查询(转)

    1. 多字段分组 {"$group":{"_id": {"state": "$state", "city&qu ...