pandas.Series.to_numpy#

Series.to_numpy(dtype=None, copy=False, na_value=<no_default>, **kwargs)[源代码]#

Series 或 Index 中值的 NumPy ndarray 表示形式。

参数:
dtypestr 或 numpy.dtype, optional

要传递给 numpy.asarray() 的 dtype。

copybool,默认值 False

是否确保返回值不是另一个数组的视图。请注意,copy=False 并不能*确保* to_numpy() 是无复制的。相反,copy=True 确保创建副本,即使这不是严格必需的。

na_valueAny, optional

用于缺失值的值。默认值取决于 dtype 和数组的类型。

**kwargs

传递给底层数组的 to_numpy 方法的附加关键字参数(适用于扩展数组)。

返回:
numpy.ndarray

包含此 Series 或 Index 值的 NumPy ndarray。 数组的 dtype 可能不同。参见 Notes。

另请参阅

Series.array

获取存储在内部的实际数据。

Index.array

获取存储在内部的实际数据。

DataFrame.to_numpy

DataFrame 的类似方法。

注意

返回的数组在相等性方面与原始数组相同(self 中相等的 [值] 在返回的数组中也将相等;不相等的值也是如此)。当 self 包含 ExtensionArray 时,dtype 可能会不同。例如,对于 category-dtype Series,to_numpy() 将返回一个 NumPy 数组,并且分类 dtype 将丢失。

对于 NumPy dtype,这将是对存储在此 Series 或 Index 中的实际数据的引用(假设 copy=False)。就地修改结果将修改存储在 Series 或 Index 中的数据(我们不建议这样做)。

对于扩展类型,to_numpy() *可能*需要复制数据并将结果强制转换为 NumPy 类型(可能是 object),这可能很昂贵。当您需要底层数据的无复制引用时,应改用 Series.array

此表概述了 pandas 中各种 dtype 的 to_numpy() 的不同 dtype 和默认返回类型。

dtype

数组类型

category[T]

ndarray[T](与输入相同的 dtype)

period

ndarray[object](Periods)

interval

ndarray[object](Intervals)

IntegerNA

ndarray[object]

datetime64[ns]

datetime64[ns]

datetime64[ns, tz]

ndarray[object](Timestamps)

示例

>>> ser = pd.Series(pd.Categorical(["a", "b", "a"]))
>>> ser.to_numpy()
array(['a', 'b', 'a'], dtype=object)

指定 dtype 以控制如何表示带时区的时间数据。使用 dtype=object 返回一个 pandas Timestamp 对象的 ndarray,每个对象都具有正确的 tz

>>> ser = pd.Series(pd.date_range("2000", periods=2, tz="CET"))
>>> ser.to_numpy(dtype=object)
array([Timestamp('2000-01-01 00:00:00+0100', tz='CET'),
       Timestamp('2000-01-02 00:00:00+0100', tz='CET')],
      dtype=object)

或者 dtype='datetime64[ns]' 返回一个原生 datetime64 值的 ndarray。这些值将被转换为 UTC 并丢弃时区信息。

>>> ser.to_numpy(dtype="datetime64[ns]")
...
array(['1999-12-31T23:00:00.000000000', '2000-01-01T23:00:00...'],
      dtype='datetime64[ns]')