在Python中解包np.array元素的列表
有人知道我如何“解包”np数组的元素/单元格列表吗?现在的输出是这样的:在Python中解包np.array元素的列表,python,arrays,list,numpy,Python,Arrays,List,Numpy,有人知道我如何“解包”np数组的元素/单元格列表吗?现在的输出是这样的: [[0 301227 0.863 0.456 -3.551 0.532 135.96200000000002 4 list([0.49, 0.33, 0.33, 0.28, 0.26, 0.47, 0.28, 0.29, 0.41, 0.42, 0.85, 0.48]) list([53.09, 119.1, 36.67, -1.91, 11.38, -20.86, -0.56, 4.01, -3.51, 0.9,
[[0 301227 0.863 0.456 -3.551 0.532 135.96200000000002 4
list([0.49, 0.33, 0.33, 0.28, 0.26, 0.47, 0.28, 0.29, 0.41, 0.42, 0.85, 0.48])
list([53.09, 119.1, 36.67, -1.91, 11.38, -20.86, -0.56, 4.01, -3.51, 0.9, -8.72, 1.04])
66.66666666666667 1.0]]
我想解压这些列表,使每个值只是数组中的另一项/列。如果有帮助的话,我还可以将列表制作成np.array。应该很容易修复,我只是还没找到
干杯如果我正确理解了您的问题,您可以使用numpy.concatenate()实现:
list = np.concatenate(input_list).ravel()
如果您希望以列表形式输出,可以附加
.tolist()
我想我现在对您的问题有了更好的理解。我创建了一些东西来尝试匹配您所面临的情况,它返回一个列表,其中每个列表中的每个项目都会变成您想要的另一个项目:
import numpy as np
input_list = [0, 2, 4, 1, 5,np.array([1, 2, 3]), 6, 1, 6, 1, 2, np.array([1, 2, 3])]
def flatten(l):
for item in l:
try:
yield from flatten(item)
except TypeError:
yield item
output_list = list(flatten(input_list)))
输出为:[0,2,4,1,5,1,2,3,6,1,6,1,2,1,2,3]
用np数组和列表测试,应该没有问题。另外,我没有将输出列表创建为np.array,但是如果您愿意,可以轻松地将其更改为np.array。欢迎使用StackOverflow!请花点时间阅读这篇关于如何以及如何提供答案的帖子,并据此修改你的问题是的!它在追加
.tolist()
时工作。谢谢然而,它并没有解包列表,它只是将np.array结构变成一个列表。所以这并不能解决我的问题。列表中仍然有列表。你有一个非常优雅的小黑客!它工作得非常好。我现在正在将原始数组中的各行馈送给它,然后在稍后的NumPy数组中重新组装这些行。谢谢!我刚刚发现了一个问题,这个问题与您的问题类似,代码与我的类似,其他黑客可能会有更好的性能!