如何将Pandas Series中存储的Numpy数组转为uint8类型(118,12)数组
解决方案
你遇到的问题是Pandas Series的每个元素为独立Numpy数组时,直接调用to_numpy()只会生成存储数组对象的object类型数组,不会自动堆叠为二维数组,可通过以下两种方式实现需求:
方法1:使用np.stack直接堆叠
import numpy as np # 请将seq_col替换为你实际的列名 target_arr = np.stack(df['seq_col']).astype('uint8')
调用后可通过以下代码验证结果符合要求:
print(target_arr.shape) print(target_arr.dtype)
方法2:先转列表再生成Numpy数组
import numpy as np target_arr = np.array(df['seq_col'].tolist(), dtype='uint8')
可选前置校验
如果不确定列中所有子数组的长度是否统一为12,可提前做合法性校验:
is_valid = df['seq_col'].apply(lambda x: x.shape[0] == 12).all() if not is_valid: raise ValueError("列中存在长度不符合要求的子数组")
内容的提问来源于stack exchange,提问作者RajaParikshat
相关产品推荐
相关产品推荐

