在将楼层分割与NumPy一起使用时,为什么会显示dtype(即使它是本机类型)?

在将楼层分割与NumPy一起使用时,为什么会显示dtype(即使它是本机类型)?,第1张

在将楼层分割与NumPy一起使用时,为什么会显示dtype(即使它是本机类型)?

实际上,您在这里有多个不同的32位整数dtype。这可能是一个错误。

NumPy(偶然地?)创建了多个不同的带符号的32位整数类型,可能对应于C

int
long
。它们都显示为
numpy.int32
,但实际上是不同的对象。在C级别,我相信类型对象是
PyIntArrType_Type
and在此处
PyLongArrType_Type
生成的。

dtype对象具有

type
对应于该dtype标量的type对象的属性。正是这种
type
该属性NumPy的检查决定是否打印时
dtype
在一个阵列的信息
repr

_typelessdata = [int_, float_, complex_]if issubclass(intc, int):    _typelessdata.append(intc)if issubclass(longlong, int):    _typelessdata.append(longlong)...def array_repr(arr, max_line_width=None, precision=None, suppress_small=None):    ...    skipdtype = (arr.dtype.type in _typelessdata) and arr.size > 0    if skipdtype:        return "%s(%s)" % (class_name, lst)    else:        ...        return "%s(%s,%sdtype=%s)" % (class_name, lst, lf, typename)

numpy.arange(5)
numpy.arange(5) + 3
.dtype.type
numpy.int_
;
numpy.arange(5) // 3
numpy.arange(5) % 3
.dtype.type
是其他32位有符号整数类型。

至于为什么

+
并且
//
具有不同的输出dtype,它们使用不同的类型解析例程。这是一个
//
,而这是一个
+
//
的类型解析会寻找一个ufunc内部循环,该内环采用可以安全地将输入转换为输入
+
的类型,而的类型解析将NumPy类型提升应用于参数,并选择与结果类型匹配的循环。



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存