如何将元素为单值numpy array的列表转换为纯数值列表?
你之前的代码没有得到预期结果的原因是:每个ord_lst的元素是长度为1的一维numpy数组,调用tolist()方法会返回包含单个元素的列表(比如array([5029339601]).tolist()的返回值是[5029339601]),最终得到的是嵌套列表,不符合要求。
以下是可行的解决方案:
方案1:遍历提取单元素(适合小数据量)
直接取每个numpy数组的第一个元素即可:
new_order_list = [item[0] for item in ord_lst]
如果你需要打印出来是空格分隔的数组格式而非Python原生列表格式,可以直接转成numpy数组:
import numpy as np new_order_arr = np.array([item[0] for item in ord_lst]) # 打印输出即为 [5029339601 5029339775 5029338374] 格式
方案2:向量化批量转换(适合大数据量)
如果ord_lst长度很大,用numpy的向量化操作效率更高:
import numpy as np new_order_list = np.hstack(ord_lst).tolist()
也可以用flatten方法实现:
import numpy as np new_order_list = np.array(ord_lst).flatten().tolist()
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

