pandas.Series.to_numpy#

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

表示此 Series 或 Index 中值的 NumPy ndarray。

Parameters:
dtypestr 或 numpy.dtype,可选

传递给 numpy.asarray() 的 dtype。

copybool,默认 False

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

na_value任意类型,可选

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

**kwargs

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

Returns:
numpy.ndarray

参见

Series.array

获取其中存储的实际数据。

Index.array

获取其中存储的实际数据。

DataFrame.to_numpy

DataFrame 的类似方法。

Notes

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

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

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

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

dtype

array type

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)

Examples

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

指定 dtype 来控制如何表示带时区的 datetime 数据。使用 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]')