将熊猫系列转换为numpy数组[重复]

Posted

技术标签:

【中文标题】将熊猫系列转换为numpy数组[重复]【英文标题】:Convert pandas series into numpy array [duplicate] 【发布时间】:2017-10-29 13:04:27 【问题描述】:

我是 pandas 和 python 的新手。我的输入数据是这样的

category   text
1   hello iam fine. how are you
1   iam good. how are you doing.

inputData= pd.read_csv(Input', sep='\t', names=['category','text'])
X = inputData["text"]
Y = inputData["category"]

这里 Y 是熊猫系列对象,我想将其转换为 numpy 数组。所以我尝试了 .as_matrix

YArray= Y.as_matrix(columns=None)
print YArray

但我得到的输出为 [1,1](这是错误的,因为我只有一个列类别和两行)。我希望结果为 2x1 矩阵。

【问题讨论】:

.values 将被避开,取而代之的是从 v0.24.0 开始的两种新方法。见this answer. 【参考方案1】:

要获取numpy数组,你需要

Y.values

【讨论】:

当我执行 Y.values() 时,它会抛出 TypeError: 'numpy.ndarray' object is not callable @vishnu 这是一个属性,而不是一个方法。 谢谢。但重塑对我有用! @vishnu 不确定原始帖子是否根据您的评论更新,但方法是执行 Y.values,而不是 Y.values()。【参考方案2】:

试试这个: 在您的系列对象上应用 .as_matrix 后

Y.reshape((2,1))

因为 .as_matrix() 只返回一个 numpy-array 而不是一个 numpy-matrix。 Link here

【讨论】:

reshape 已弃用,请改用 Y.values.reshape(2,1)。【参考方案3】:

如果 df 是您的数据框,则数据框的一列是一个系列并将其转换为数组,

df = pd.DataFrame()
x = df.values
print(x.type)

以下打印,

<class 'numpy.ndarray'>

成功将其转换为数组。

【讨论】:

以上是关于将熊猫系列转换为numpy数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫数据框转换为numpy数组[重复]

如何将包装为字符串的向量转换为熊猫数据框中的numpy数组?

如何从熊猫框架中的特定列中提取numpy数组并将它们堆叠为单个numpy数组[重复]

将数组数据转换为熊猫数据框[重复]

numpy 矩阵到熊猫系列

将包含熊猫系列的列转换为特征[重复]