在Python中解包数组

8

我有一个名为data的变量,它的形状是(1000L, 3L),我执行以下操作来获取坐标:

x = data[:,0]
y = data[:,1]
z = data[:,2]

有没有一种方法可以将它们解包? 我尝试过了,但不起作用:

[x,y,z] = data1[:,0:3]
2个回答

15

在拆包之前,您可以简单地 转置 它:

x, y, z = data.T

解包(Unpacking)会解开数组的前几个维度,通过转置数组,size-3维度将成为第一维度。这就是为什么[x, y, z] = data1[:, 0:3]不能正常工作的原因,因为它试图将1000个值解包到3个变量中。


3
您可以使用zip进行解压:
x, y, z = zip(*data[:, :3])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接