在 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])
我有一个 (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])