python numpy array dtype和astype类型转换的区别

Python3 本身对整数的支持做了提升,可以支持无限长度的整数:比如:

 b = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Python的模块numpy array定义的数组在windows和MACOS上默认长度是不一样的。

  • windows上的numpy array,如果不指定dtype的话,默认长度是32位
  • MacOS上的numpy array,如果不指定dtype的话,默认长度是64位

也许是numpy array底层是C语言在不同平台上实现导致的差异。

如果在windows上定义numpy array的一个数组:

import numpy as np
a = np.array([200, 200, 200, 200])

那么查看变量,发现数组的每个元素是32位。

 如果用dtype进行32到64位的转换:

a.dtype=np.int64

那么查看变量,发现数组的元素变为2个,也就是每2个32位元素合成一个64位元素:

如果使用astype进行32到64位的转换:

a = a.astype(np.int64)

那么查看变量,发现数组的元素还是4个,每个元素值不变,只是类型变成int64.

 另外也可以在定义numpy array时候,直接通过dtype指定数组元素的类型。

a = np.array([200, 200, 200, 200],dtype = np.int64)

a
Out[44]: array([200, 200, 200, 200], dtype=int64)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值