使用以下python代码:
s = [0, 1, 2, 3]
s_np= randn(5)
s_pd = pd.Series(randn(5))
print s.__class__, " -> ", np.exp(s).__class__
print s_np.__class__, " -> ", np.exp(s_np).__class__
print s_pd.__class__, " -> ", np.exp(s_pd).__class__
我得到了以下输出:
<type 'list'> -> <type 'numpy.ndarray'>
<type 'numpy.ndarray'> -> <type 'numpy.ndarray'>
<class 'pandas.core.series.Series'> -> <class 'pandas.core.series.Series'>
根据np.exp
的文件,它应该返回ndarray
。但是当参数是pandas Series
object时,它显然会返回一个pandas Series
对象。
如果我理解正确,numpy甚至不知道Series
类,因为它是Pandas构建的较低级别的类。这里发生了什么魔力?
谢谢; - )