I have a variable data that is of (1000L, 3L) shape and I do the following to get the coordinates:
x = data[:,0]
y = data[:,1]
z = data[:,2]
Is there a way to unpack them? I tried but it doesn't work:
[x,y,z] = data1[:,0:3]
You could simply transpose it before unpacking:
x, y, z = data.T
Unpacking "unpacks" the first dimensions of an array and by transposing the your array the size-3 dimension will be the first dimension. That's why it didn't work with [x, y, z] = data1[:, 0:3] because that tried to unpack 1000 values into 3 variables.
those days, seems python 3.9 support it now.
Python 3.9.2
>>> a=[1,2]
>>> x,y=a
>>> x
1
>>> y
2
>>> x,y=*a
File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>> [x,y]=a
>>> x
1
>>> y
2
>>> def foo(a,b): print(a,b)
...
>>> foo(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foo() missing 1 required positional argument: 'b'
>>> test1(*a)
1 2