You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含一维数组的Pandas Series转换为二维NumPy数组?

将Pandas Series中的嵌套列表转换为二维NumPy数组

我明白你的问题——当Series里的每个元素都是列表时,直接用to_numpy()会得到一个dtype为object的一维数组,而不是你想要的二维数值数组。这里有几种简单的解决方法:

方法1:直接用np.array()转换Series的值

因为你的Series本质上是一个可迭代的列表集合,直接把Series的values传给np.array()就能自动生成二维数组:

import pandas as pd
import numpy as np

s = pd.Series([[1,2,3,4],[5,6,7,8]])
# 转换为二维数组
arr = np.array(s.values)
print(arr)
# 输出结果:
# array([[1, 2, 3, 4],
#        [5, 6, 7, 8]])

方法2:先转成Python列表再转换

另一种等价的方式是先用to_list()把Series转换成普通的Python列表,再转成numpy数组:

arr = np.array(s.to_list())

方法3:用np.vstack()堆叠元素

如果你的Series里的子列表长度都一致(像示例这样),也可以用np.vstack()来逐个堆叠这些列表:

arr = np.vstack(s)

为什么直接用to_numpy()不行?

当Series的元素是嵌套列表时,Pandas的to_numpy()默认会将每个列表视为一个独立的对象,所以生成的数组是一维的,且dtype为object。上面的方法都是将这些子列表提取出来,重新组合成二维的数值数组。

内容的提问来源于stack exchange,提问作者Roman Wögerbauer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:08:05