Python中如何将numpy ndarray转换为一维列表而非嵌套列表?
将三维numpy数组转换为一维列表
你的数组是三维结构(shape=(3,1,1)),用hstack后得到的是二维数组(shape=(1,3)),可以通过以下几种方式得到目标一维列表:
方法1:直接扁平化数组后转列表
利用numpy的flatten()或ravel()方法将多维数组转为一维,再调用tolist()转成Python列表:
import numpy as np a = np.array([[[0.7]], [[0.3]], [[0.5]]]) # 使用flatten(返回副本) result = a.flatten().tolist() # 或者使用ravel(返回视图,内存更高效) result = a.ravel().tolist()
执行后result即为[0.7, 0.3, 0.5]
方法2:用reshape调整维度后转列表
通过reshape(-1)自动将数组转为一维,再转列表:
result = a.reshape(-1).tolist()
reshape(-1)会根据数组总元素数自动计算一维的长度,适合任意多维数组的扁平化需求。
方法3:处理已得到的hstack结果
如果已经执行了b = np.hstack(a),可以直接取二维数组的第一行转列表,或者再次扁平化:
b = np.hstack(a) # 取第一行转列表 result = b[0].tolist() # 或者再次扁平化 result = b.flatten().tolist()
内容的提问来源于stack exchange,提问作者armin
相关产品推荐
相关产品推荐

