【问题标题】:Conversion between "pandas.Series" to numpy array“pandas.Series”到 numpy 数组之间的转换
【发布时间】:2021-01-03 08:03:03
【问题描述】:

我有一个pandas.Series,每个元素都是一个numpy.array, 例如:

p = pandas.Series([numpy.array([1,2]), numpy.array([2,4])])

我尝试将整个 Series 转换为多维 (2,2) numpy.array,为此我使用 Seriesvalues 方法,但是这个返回一个单维 numpy 数组,每个数组中的元素是numpy.array,数组的dtype是object

In [18]: p = pandas.Series([numpy.array([1,2]), numpy.array([2,4])])

In [19]: p.values
Out[19]: array([array([1, 2]), array([2, 4])], dtype=object)

我想要达到的结果是该系列将被创建为 numpy 数组

In [23]: a = numpy.array([numpy.array([1,2]), numpy.array([2,4])])

In [24]: a
Out[24]:
array([[1, 2],
       [2, 4]])

In [25]: a.shape
Out[25]: (2, 2)

有人知道如何进行这种转换吗? to_numpy 方法对我也不起作用。

【问题讨论】:

  • 也许您想使用 pandas DataFrame 而不是 Series。系列通常用于一维数据。如果你使用pandas.DataFrame([numpy.array([1,2]), numpy.array([2,4])]).values,你应该会得到你想要的结果。

标签: python pandas numpy


【解决方案1】:

我建议进行以下转换:

import numpy as np
import pandas as pd

p = pd.Series([np.array([1,2]), np.array([2,4])])
np.array(p.values.tolist()).shape

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2015-07-07
    • 2019-07-29
    • 2014-04-28
    相关资源
    最近更新 更多