Py学习  »  Python

如何在Python中堆叠3D列表中的元素

Mamdud • 3 年前 • 1199 次点击  

我有两个类似的清单:

x = np.array([1,2,3,4,5])

y_all = [[2,3,5,4,6], 

         [3,2,4,3,5], 

         [4,5,4,3,4]]

我需要输出如下:

[(1, 2), (2, 3), (3, 5), (4, 4), (5, 6), (1, 3), (2, 2), (4, 3), (5, 5), (1, 4), (2, 5), (3, 4), (4, 3), (5, 4),]

我怎样才能更有效地做到这一点,如果我有一个更大的x和y_,我就可以做到这一点?

这就是我迄今为止所尝试的:

import numpy as np

y=np.array(y_all).T

y_all_fin = []

for i in range(len(y[0])):

    inter = np.vstack((x,y_all[i]))
    y_all_fin.append(inter)

points = np.hstack((y_all_fin[0],y_all_fin[1],y_all_fin[2])).T

N = []

for i in range(len(points[:,0])):

    new = tuple(points[i])

    N.append(new)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130168
 
1199 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Julien
Reply   •   1 楼
Julien    3 年前

您可以使用以下简单的1-liner:

[a for y in y_all for a in zip(x,y)]

请注意,如果数组包含元组之类的对象(非数字)类型,那么使用numpy没有什么意义。。。