栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

本机int类型和numpy.int类型之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

本机int类型和numpy.int类型之间有什么区别?

观察差异的另一种方法是询问两种对象有什么方法。

在Ipython中,我可以使用tab complete来查看方法:

In [1277]: x=123; y=np.int32(123)

int
方法和属性:

In [1278]: x.<tab>x.bit_length   x.denominator  x.imag         x.numerator    x.to_bytesx.conjugate    x.from_bytes   x.real

int
“经营者”

In [1278]: x.__<tab>x.__abs__x.__init__          x.__rlshift__x.__add__x.__int__x.__rmod__x.__and__x.__invert__        x.__rmul__x.__bool__          x.__le__ x.__ror__...x.__gt__ x.__reduce_ex__     x.__xor__x.__hash__          x.__repr__          x.__index__         x.__rfloordiv__

np.int32
方法和属性(或属性)。一些相同,但更多的是,基本上所有
ndarray
的:

In [1278]: y.<tab>y.T  y.denominator   y.ndim          y.sizey.ally.diagonal      y.newbyteorder  y.sorty.anyy.dtype         y.nonzero       y.squeeze   ...y.cumsum        y.miny.setflags      y.data          y.nbytes        y.shape

y.__
方法看起来很像
int
的。他们可以做同样的数学。

In [1278]: y.__<tab>y.__abs__   y.__getitem__          y.__reduce_ex__y.__add__   y.__gt__    y.__repr__...y.__format__y.__rand__  y.__subclasshook__y.__ge__    y.__rdivmod__          y.__truediv__y.__getattribute__     y.__reduce__y.__xor__

y
在很多方面与0d数组相同。不相同,但接近。

In [1281]: z=np.array(123,dtype=np.int32)

np.int32
当我索引该类型的数组时得到的是:

In [1300]: A=np.array([0,123,3])In [1301]: A[1]Out[1301]: 123In [1302]: type(A[1])Out[1302]: numpy.int32

我必须使用

item
删除所有
numpy
包装。

In [1303]: type(A[1].item())Out[1303]: int

作为

numpy
用户,an
np.int32
int
带有
numpy
包装的。或相反的单个元素
ndarray
。通常,我不关心
A[0]
是给我“本机”
int
还是给我numpy等价物。与一些新用户相反,我很少使用
np.int32(123)
;
我会
np.array(123)
改用。

A = np.array([1,123,0], np.int32)

不包含3个

np.int32
对象。而是其数据缓冲区为3 * 4 =
12字节长。正是数组开销将其在一维中解释为3个整数。并
view
显示我不同的解释相同的DataBuffer:

In [1307]: A.view(np.int16)Out[1307]: array([  1,   0, 123,   0,   0,   0], dtype=int16)In [1310]: A.view('S4')Out[1310]: array([b'x01', b'{', b''],   dtype='|S4')

只有当我为单个元素建立索引时,我才能获得

np.int32
对象。

列表

L=[1, 123, 0]
不一样;它是一个指针列表-指向
int
内存中其他对象的指针。类似地,对于dtype = object数组。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号