如何将包裹在元组中的numpy数组提取转换为列表或DataFrame?
你遇到的报错本质是idx变量本身是单元素元组,而非numpy数组。从你给出的输出结果可以看到,外层包裹的括号+末尾的逗号就是Python单元素元组的典型标识,元组对象本身没有tolist方法,你需要先取出元组中存储的numpy数组再进行后续操作。
1. 转换为列表
先取元组的第0位元素(即实际存储的numpy数组),再调用tolist()方法:
# 取出元组内的numpy数组后转列表 idx_list = idx[0].tolist()
执行后idx_list就是你需要的整数列表:[223, 226, 445, 494, 546, 696, 702, 713, 725, 749]
2. 转换为DataFrame
同样先取出元组内的numpy数组,再传入pandas的DataFrame构造方法即可:
import pandas as pd # 生成单列DataFrame,可自定义columns参数修改列名 idx_df = pd.DataFrame(idx[0], columns=['目标索引'])
如果需要提前验证变量类型确认逻辑,可执行下面的代码查看类型:
print(type(idx)) # 输出为 <class 'tuple'> print(type(idx[0])) # 输出为 <class 'numpy.ndarray'>
内容的提问来源于stack exchange,提问作者Stuart Macfarlane
相关产品推荐
相关产品推荐

