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. change transformation file in PI interface

    1. Jane extends the ZTMMASKU sap table 2. Jane write the program to write the new attribute to the t ...

  2. Vue_子级组件调用主组件函数

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 一文读懂MQTT协议

    1  概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级 ...

  4. texinfo - 软件文档系统

    DESCRIPTION 描述 Texinfo 是一种文档系统,使用单一的源文件来产生在线文档以及可打印的输出.它主要用于书写软件使用手册. 要查看 Texinfo 语言和相关工具的全面描述,请查看 T ...

  5. Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

    虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...

  6. rest framework 之前

    在开始rest framework之前,我们先来了解一下什么是restful rest 是一种软件架构风格,Representational state Transfer 它从资源的角度去看整个网络, ...

  7. Java中的List集合

    List集合继承自collection接口,他自己也是个接口,没有具体的结构,与Set集合不同,List集合允许重复的元素. List集合特有方法:(Collection中没有这些) 这些在Arral ...

  8. YII 中加入短信接口的函数

    public function smsto($telphone,$message) { //短信接口用户名 $uid,如果没有或不能发送请与客服联系 $uid = 'zyd'; //短信接口密码 $p ...

  9. apue第4章习题

    4.1 用 stat 函数替换图 4-3 程序中的 lstat函数,如若命令行残数之一是符号链接,会发生什么变化? stat不支持链接,如果有参数是链接符号,会显示链接后的文件属性. 4.2 如果文件 ...

  10. MySql中创建用户,授权

    第一天搞MySql好多东西都不会,幸好有网络的强大资源,首先需要注意的是任何一条sql语句都是要以分号结尾的,不然很是蛋疼的 1.新建用户. //登录MYSQL @>mysql -u root  ...