Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays python数组第一和第二元素的紧凑形式_Arrays_Python 3.x_Numpy - Fatal编程技术网

Arrays python数组第一和第二元素的紧凑形式

Arrays python数组第一和第二元素的紧凑形式,arrays,python-3.x,numpy,Arrays,Python 3.x,Numpy,我定义了两个数组: a=np.array([[2,3,4],[5,6,7],[8,9,10]]) b=np.array([-1,-2]) 并创建了第三个: x=np.asarray([[x - a/2, x + a/2] for x in b]) 现在,我定义了两个变量 u,v = x[:,0], x[:,1] 我的问题非常简单:有没有一种方法不用逗号,只使用数组操作来定义这些变量?如果我写 u,v = x[:,] 排序错误。如果x是2D: u, v = x.T 如果x是ND: u,

我定义了两个数组:

a=np.array([[2,3,4],[5,6,7],[8,9,10]])
b=np.array([-1,-2])
并创建了第三个:

x=np.asarray([[x - a/2, x + a/2] for x in b])
现在,我定义了两个变量

u,v = x[:,0], x[:,1]
我的问题非常简单:有没有一种方法不用逗号,只使用数组操作来定义这些变量?如果我写

 u,v = x[:,]
排序错误。

如果x是2D:

u, v = x.T
如果x是ND:

u, v = np.swapaxes(x, 0, 1)
确认:

>>> np.all(u == x[:, 0])
True

>>> np.all(v == x[:, 1])
True

您正在寻找的是
u,v=x.T
?可能的副本不是真的。我想要的正是来自
u,v=x[:,0],x[:,1]
u
v
,但我想知道是否没有办法简洁地写这个。我知道这是可能的
u,v=np.hsplit(x,x.shape[1])
或者只是
循环的
,但奇怪的是
没有操作,
这不起作用。如果我在头脑中正确地运行它,
x
是(2,2,3,3)形状<代码>u
为(2,3,3),在轴1上选择
x[:,]
只是
x
。解包只在第一个轴上迭代。你必须交换轴才能在2号解包,也就是说,从2号移到1号。这与我的想法不完全一样,但是
swapaxes
起作用了。