我试图准确理解numpy
和pandas
的互动方式。特别是,pandas.Series
对象是ndarray
,其标签符合docstring。 numpy
方法似乎在这些类型的对象上运行良好..是否在引擎盖下的某处投射?我能够挖掘的最好的是numpy.asanyarray()
被调用以将某些pandas.Series
函数中的ndarray
转换为numpy
。内部还有其他事情发生吗?
答案 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这样的鸭子类型的语言中,强制转换不是一个非常有用的概念。