Python中如何将numpy模块的ndarray对象转换为字符串列表
你之前写的列表推导式仅完成了二维嵌套结构的一层展开,得到的每个元素仍然是单元素的ndarray对象,并未提取出内部存储的字符串值,因此无法得到预期结果。以下是两种可行的实现方案:
方案1:修改列表推导式
在原有展开逻辑的基础上,提取ndarray中的字符串值,用item()方法可以直接将单元素numpy数组转为Python原生字符串:
python_list = [k.item() for a in lst for k in a]
如果确定每个k都是长度为1的一维数组,也可以用索引取值:
python_list = [k[0] for a in lst for k in a]
方案2:用numpy内置方法批量处理(更适合大数据量场景)
直接调用numpy的数组维度扁平化+转列表方法,代码更简洁效率更高:
import numpy as np # 先将原始结构转为numpy数组,扁平化后转原生列表 python_list = np.array(lst).flatten().tolist()
也可以用ravel()代替flatten(),内存效率更高:
python_list = np.array(lst).ravel().tolist()
两种方案都可以直接得到你需要的['img_10.jpg','img_11.jpg','img_12.jpg','img_13.jpg']格式的字符串列表。
内容的提问来源于stack exchange,提问作者Baya Lina
相关产品推荐
相关产品推荐

