在 python 中解包数组

Unpacking an array in python

我有一个 (1000L, 3L) 形状的可变数据,我执行以下操作来获取坐标:

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

有没有办法解压它们?我试过了,但没有用:

[x,y,z] = data1[:,0:3]

你可以简单地 transpose 它然后解压:

x, y, z = data.T

解包 "unpacks" 数组的第一个维度,并通过转置您的数组,size-3 维度将成为第一个维度。这就是它不适用于 [x, y, z] = data1[:, 0:3] 的原因,因为它试图将 1000 个值解压缩为 3 个变量。

您可以使用 zip:

解压
x, y, z = zip(*data[:, :3])