Python 大熊猫与numpy的互动
我试图准确地理解Python 大熊猫与numpy的互动,python,pandas,numpy,Python,Pandas,Numpy,我试图准确地理解numpy和pandas是如何相互作用的。特别是,pandas.Series对象是一个ndarray,其标签根据docstringnumpy方法在这些类型的对象上似乎工作得很好。。引擎盖下面有铸件吗?我能找到的最好的方法是调用numpy.asanyarray(),在一些numpy函数中将pandas.Series转换为ndarray。内部还发生了什么吗?不,严格来说,pandas容器不是numpy.ndarray对象。也就是说,他们不是从他们那里继承的。IOW: In [5]:
numpy
和pandas
是如何相互作用的。特别是,pandas.Series
对象是一个ndarray
,其标签根据docstringnumpy
方法在这些类型的对象上似乎工作得很好。。引擎盖下面有铸件吗?我能找到的最好的方法是调用numpy.asanyarray()
,在一些numpy
函数中将pandas.Series
转换为ndarray
。内部还发生了什么吗?不,严格来说,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这样使用duck类型的语言中,强制转换不是一个非常有用的概念 你可能想要谷歌。这是Pandas对象的\u data
属性,它对NumPy数组执行大部分实际的“包装”。