Numpy中ndim、shape、dtype、astype的用法详解

本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。

1.ndim

ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。

2.shape

shape:表示各位维度大小的元组。返回的是一个元组。

对于一维数组:有疑问的是为什么不是(1,6),因为arr1.ndim维度为1,元组内只返回一个数。

对于二维数组:前面的是行,后面的是列,他的ndim为2,所以返回两个数。

对于三维数组:很难看出,下面打印arr3,看下它是什么结构。

先看最外面的中括号,包含[[1,2,3],[4,5,6]]和[[7,8,9],[10,11,12]],假设他们为数组A、B,就得到[A,B],如果A、B仅仅是一个数字,他的ndim就是2,这就是第一个数。但是A、B是(2,3)的数组。所以结合起来,这就是arr3的shape,为(2,2,3)。

将这种方法类比,也就可以推出4维、5维数组的shape。

3.dtype

dtype:一个用于说明数组数据类型的对象。返回的是该数组的数据类型。由于图中的数据都为整形,所以返回的都是int32。如果数组中有数据带有小数点,那么就会返回float64。

有疑问的是:整形数据不应该是int吗?浮点型数据不应该是float吗?

解答:int32、float64是Numpy库自己的一套数据类型。

4.astype

astype:转换数组的数据类型。

int32 --> float64        完全ojbk

float64 --> int32        会将小数部分截断

string_ --> float64        如果字符串数组表示的全是数字,也可以用astype转化为数值类型

注意其中的float,它是python内置的类型,但是Numpy可以使用。Numpy会将Python类型映射到等价的dtype上。

以上是这四个方法的简单用法,之后若有什么新发现再做补充。

到此这篇关于Numpy中ndim、shape、dtype、astype的用法详解的文章就介绍到这了,更多相关Numpy中ndim、shape、dtype、astype内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Numpy之reshape()使用详解

    如下所示: Numpy中reshape的使用方法为:numpy.reshape(a, newshape, order='C') 参数详解: 1.a: type:array_like(伪数组,可以看成是对数组的扩展,但是不影响原始数组.) 需要reshape的array 2.newshape:新的数组 新形状应与原形状兼容.如果是整数,那么结果将是该长度的一维数组.一个形状尺寸可以是-1.在本例中,值是 从数组的长度和剩余维度推断出来的. 3.order: 可选为(C, F, A) C: 按照行来

  • Numpy数据类型转换astype,dtype的方法

    1.查看数据类型 In [11]: arr = np.array([1,2,3,4,5]) In [12]: arr Out[12]: array([1, 2, 3, 4, 5]) // 该命令查看数据类型 In [13]: arr.dtype Out[13]: dtype('int64') In [14]: float_arr = arr.astype(np.float64) // 该命令查看数据类型 In [15]: float_arr.dtype Out[15]: dtype('float

  • 关于Numpy数据类型对象(dtype)使用详解

    常用方法 #记住引入numpy时要是用别名np,则所有的numpy字样都要替换 #查询数值类型 >>>type(float) dtype('float64') # 查询字符代码 >>> dtype('f') dtype('float32') >>> dtype('d') dtype('float64') # 查询双字符代码 >>> dtype('f8') dtype('float64') # 获取所有字符代码 >>>

  • numpy库reshape用法详解

    numpy.reshape(重塑) 给数组一个新的形状而不改变其数据 numpy.reshape(a, newshape, order='C')参数: a:array_like 要重新形成的数组. newshape:int或tuple的整数 新的形状应该与原始形状兼容.如果是整数,则结果将是该长度的1-D数组.一个形状维度可以是-1.在这种情况下,从数组的长度和其余维度推断该值. order:{'C','F','A'}可选 使用此索引顺序读取a的元素,并使用此索引顺序将元素放置到重新形成的数组中

  • 对numpy中shape的深入理解

    环境:Windows, Python2.7 一维情况: <span style="font-size:14px;">>>> import numpy as np >>> a = np.array([2,3,33]) >>> a array([ 2 3 33 ]) >>> print a [ 2 3 33 ] >>> a.shape (3, )</span> 一维情况中arr

  • numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)

    numpy库对多维数组有非常灵巧的处理方式,主要的处理方法有: .reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变 .resize(shape) : 与.reshape()功能一致,但修改原数组 In [22]: a = np.arange(20) #原数组不变 In [23]: a.reshape([4,5]) Out[23]: array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14

  • python numpy矩阵信息说明,shape,size,dtype

    我就废话不多说了,大家还是直接看例子吧! import numpy as np from numpy import random matrix1 = random.random(size=(2,4)) #矩阵每维的大小 print matrix1.shape #矩阵所有数据的个数 print matrix1.size #矩阵每个数据的类型 print matrix1.dtype 补充知识:Python:查看矩阵大小,查看列表大小 对于Python3.5 查看矩阵大小 >>>import

  • 在python2.7中用numpy.reshape 对图像进行切割的方法

    遇到这么个需求:把图片按照定义的patchsize切块,然后按照z轴顺序叠放小块,如下图(仅考虑灰度图像) 图片im,设size为(h,w),patchsize为(ph,pw),则处理后大小(为简化描述,假设可以整除)为(ph,pw,w*h/ph/pw). 为简化描述,后面用h=300,w=300,ph=100,pw=100 为例,即处理后d=9. numpy.reshape 的文档:点击打开链接 特别注意第三个参数 order,其默认取值为 order='C',表示最后一个维度的元素在resh

  • python实现将一维列表转换为多维列表(numpy+reshape)

    如题,我们直接使用numpy #!D:/workplace/python # -*- coding: utf-8 -*- # @File : numpy_reshape.py # @Author: WangYe # @Date : 2018/7/23 # @Software: PyCharm import numpy a=[1,2,3,1,4,5,5846,464,64,456,456,4] print(a) b=numpy.array(a).reshape(len(a),1) # reshap

  • Numpy中ndim、shape、dtype、astype的用法详解

    本文介绍numpy数组中这四个方法的区别ndim.shape.dtype.astype. 1.ndim ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度. 2.shape shape:表示各位维度大小的元组.返回的是一个元组. 对于一维数组:有疑问的是为什么不是(1,6),因为arr1.ndim维度为1,元组内只返回一个数. 对于二维数组:前面的是行,后面的是列,他的ndim为2,所以返回两个数. 对于三维数组:很难看出,下面打印arr3,看下它是什么结构. 先看最外面的中括号

  • 对numpy中布尔型数组的处理方法详解

    布尔数组的操作方式主要有两种,any用于查看数组中是否有True的值,而all则用于查看数组是否全都是True. 如果用于计算的时候,布尔量会被转换成1和0,True转换成1,False转换成0.通过这种方法可以统计一个布尔量数组中True的个数. 如果普通的数组用于布尔类操作,也会有类似的数据类型转换.其中,非0的数值转换成True,而0则被转换成False. In [30]: arr = randn(100) In [31]: arr Out[31]: array([ 1.38474589,

  • pandas中read_csv、rolling、expanding用法详解

    如下所示: import pandas as pd from pandas import DataFrame series = pd.read_csv('daily-min-temperatures.csv',header=0, index_col=0, parse_dates=True,squeeze=True) temps = DataFrame(series.values) width = 3 shifted = temps.shift(width-1) print(shifted) wi

  • JS中正则表达式全局匹配模式 /g用法详解

    本文章来详细介绍js中正则表达式的全局匹配模式 /g用法,代码如下: var str = "123#abc"; var re = /abc/ig; console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出false console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出false 在创建正则表达式对象时如果使用了"g&q

  • Python 中 Virtualenv 和 pip 的简单用法详解

    本文介绍了Python 中 Virtualenv 和 pip 的简单用法详解,分享给大家,具体如下: 0X00 安装环境 我们在 Python 开发和学习过程中需要用到各种库,然后在各个不同的项目和作品里可能用的版本还不一样,正因为有这种问题的存在才催生了virtualenv的诞生.virtualenv 可以在电脑上创建一个虚拟环境,可以针对每一个项目创建一个虚拟环境,这样就不用担心各个不同的项目用不同版本的库的时候出现的冲突了. 下面的内容只适用于 Linux/OSX,未经 Windows 环

  • 有关C++中随机函数rand() 和srand() 的用法详解

    一.rand() 函数名:   rand 功   能:   随机数发生器 用   法:   int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定 的范围里可看成是随机的. rand()返回一随机数值的范围在0至RAND_MAX 间.RAND_MAX的范围最少是在32767之间(int).用 unsigned int 双字节是65535,四字节是4294967295的整数范围.0~RAND

  • Java中volatile关键字的作用与用法详解

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机. volatile 关键字作用是,使系统中所有线程对该关键字修饰的变量共享可见,可以禁止线程的工作内存对volatile修饰的变量进行缓存. volatile 2个使用场景: 1.可见性:Java提供了volatile关键字来保证可见性. 当一个共享变量被volatile修饰时,它会保证修

  • 基于vue.js中事件修饰符.self的用法(详解)

    .self可以理解为跳过冒泡事件和捕获事件,只有直接作用在该元素上的事件才可以执行. 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>self</title> <script src="vue.js"></script> <!--'''''''

  • python 函数中的内置函数及用法详解

    今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(abs(-18)) print(abs(0.15)) result: 18 0.15 2.all(iterable) 如果iterable的所有元素不为0.''.False或者iterable为空,all(iterable)返回True,否则返回False. print(all(['a','b',

  • python中for循环变量作用域及用法详解

    在讲这个话题前,首先我们来看一道题: 代码1: def foo(): return [lambda x: x**i for i in range(1,5,2)] print([f(3) for f in foo()]) 伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体: 代码:2 def foo(): functions=[] for i in range(1,5,2): def inside_fun(x): return x ** i functions.append(insid

随机推荐