我不确定何时使用int()
以及何时使用.astype('int')
。谁能解释一下?
仅int()
用于单个值,.astype('int')
用于向量吗?我来自R背景,所以我以前习惯使用as.integer
答案 0 :(得分:4)
.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指出这一点。)
答案 1 :(得分:1)
def _rc(self, a):
if len(shape(a)) == 0:
return a
else:
return self.__class__(a)
._ rc定义为:
{{1}}
在英语中,这意味着如果你的数组没有形状 - 即它是一个列表 - 它返回数组,否则它会返回数组本身强制转换为指定的类型。
int是一个内置的python。它只涉及标量。