maxframe.dataframe.DataFrame.take#

DataFrame.take(indices, axis=0, **kwargs)#

返回沿指定轴的给定*位置*索引处的元素。

这意味着我们不是根据对象索引属性中的实际值进行索引,而是根据元素在对象中的实际位置进行索引。

参数:
  • indices (array-like) -- 一个整数数组,指示要获取哪些位置的元素。

  • axis ({0 or 'index', 1 or 'columns', None}, default 0) -- 选择元素的轴。0 表示选择行,1 表示选择列。对于 Series 此参数未使用,默认为 0。

  • **kwargs -- 与 numpy.take() 兼容。对输出没有影响。

返回:

一个类数组对象,包含从原对象中获取的元素。

返回类型:

same type as caller

参见

DataFrame.loc

通过标签选择 DataFrame 的子集。

DataFrame.iloc

通过位置选择 DataFrame 的子集。

numpy.take

沿指定轴从数组中获取元素。

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> df = md.DataFrame([('falcon', 'bird', 389.0),
...                    ('parrot', 'bird', 24.0),
...                    ('lion', 'mammal', 80.5),
...                    ('monkey', 'mammal', mt.nan)],
...                   columns=['name', 'class', 'max_speed'],
...                   index=[0, 2, 3, 1])
>>> df.execute()
     name   class  max_speed
0  falcon    bird      389.0
2  parrot    bird       24.0
3    lion  mammal       80.5
1  monkey  mammal        NaN

沿轴 0(默认)获取位置 0 和 3 处的元素。

请注意所选的实际索引(0 和 1)与我们选择的索引 0 和 3 不对应。这是因为我们选择的是第 0 和第 3 行,而不是索引等于 0 和 3 的行。

>>> df.take([0, 3]).execute()
     name   class  max_speed
0  falcon    bird      389.0
1  monkey  mammal        NaN

沿轴 1(列选择)获取索引 1 和 2 处的元素。

>>> df.take([1, 2], axis=1).execute()
    class  max_speed
0    bird      389.0
2    bird       24.0
3  mammal       80.5
1  mammal        NaN

我们可以使用负整数表示正索引,从对象末尾开始获取元素,就像 Python 列表一样。

>>> df.take([-1, -2]).execute()
     name   class  max_speed
1  monkey  mammal        NaN
3    lion  mammal       80.5