大熊猫和numpy的互动

时间:2018-04-05 01:24:57

标签: python pandas numpy

我试图准确理解numpypandas的互动方式。特别是,pandas.Series对象是ndarray,其标签符合docstring。 numpy方法似乎在这些类型的对象上运行良好..是否在引擎盖下的某处投射?我能够挖掘的最好的是numpy.asanyarray()被调用以将某些pandas.Series函数中的ndarray转换为numpy。内部还有其他事情发生吗?

1 个答案:

答案 0 :(得分:2)

不,严格来说,pandas容器不是numpy.ndarray个对象。也就是说,他们不会继承他们。 IOW:

In [5]: import pandas as pd

In [6]: df = pd.DataFrame()

In [7]: s = pd.Series()

In [8]: import numpy as np

In [9]: isinstance(df, np.ndarray)
Out[9]: False

In [10]: isinstance(s, np.ndarray)
Out[10]: False

或者,直接说明:

In [12]: issubclass(pd.DataFrame, np.ndarray), issubclass(pd.Series, np.ndarray)
Out[12]: (False, False)

简单地说,这些容器包装 numpy.ndarray个对象,并暴露许多相同的方法。没有铸造。在使用像Python这样的鸭子类型的语言中,强制转换不是一个非常有用的概念。