繁体   English   中英

int()与.astype('int')Python

[英]int() vs .astype('int') Python

我不确定何时使用int()和何时使用.astype('int') 谁能解释?

仅仅是int()用于单个值而.astype('int')用于向量? 我来自R背景,所以我习惯使用as.integer

.astype()numpy.ndarray以及Pandas Series类中的一种方法,因此可用于转换DataFrame向量,矩阵和列。 但是, int()是纯Python函数,只能应用于标量值。

例如,您可以执行int(3.14) ,但不能执行(2.7).astype('int') ,因为Python本机类​​型没有任何此类方法。 但是, numpy.array([1.1, 2.2, 3.3]).astype('int')有效。

(严格来说,也可以在自己的类中定义__int__()方法,这将允许将int()应用于非本机类型。感谢@ juanpa.arrivillaga指出了这一点。)

@rwp指出,astype是一个numpy函数。 它定义为:

def astype(self, typecode):
        ""
        return self._rc(self.array.astype(typecode))

._rc定义为:

def _rc(self, a):
    if len(shape(a)) == 0:
        return a
    else:
        return self.__class__(a)

用英语,这意味着如果您的数组没有形状(即它是一个列表),它将返回该数组,否则将返回数组本身强制转换为指定类型的数组。

int是python内置的。 它仅处理标量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM