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

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

本机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数组。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存