这是重现我的问题的示例:a = np.array([[1,2], [3,4], [6,7]])b = np.array([[1,2], [3,4], [6,7,8]])c = np.array([[1,2], [3,4], [6]])print(a.flatten())print(b.flatten())print(c.flatten())当其中一个数组的项目少或多时,就会出现问题。Output:[1 2 3 4 6 7][list([1, 2]) list([3, 4]) list([6, 7, 8])] # Won't work[list([1, 2]) list([3, 4]) list([6])] # Also won't workHow I want it:[1 2 3 4 6 7][1 2 3 4 6 7 8][1 2 3 4 6]有谁知道如何正确地展平列表,例如 b 和 c?
2 回答

吃鸡游戏
TA贡献1829条经验 获得超7个赞
使用 concatenate
np.concatenate(b)
Out[204]: array([1, 2, 3, 4, 6, 7, 8])
np.concatenate(c)
Out[205]: array([1, 2, 3, 4, 6])

尚方宝剑之说
TA贡献1788条经验 获得超4个赞
你需要:
from itertools import chain
a = np.array([[1,2], [3,4], [6,7]])
b = np.array([[1,2], [3,4], [6,7,8]])
c = np.array([[1,2], [3,4], [6]])
print(a.flatten())
print(list(chain(*b)))
print(list(chain(*c)))
输出:
[1 2 3 4 6 7]
[1 2 3 4 6 7 8]
[1 2 3 4 6]
添加回答
举报
0/150
提交
取消