Python 将3d数组拆分为具有不同秒索引的2d数组的最适合的方法是什么?
我有一个函数foo,它返回一个形状为(1000,3,1000)的数组 如何将其拆分为三个阵列a(1000,1000)、b(1000,1000)和c(1000,1000) 我在找这样的东西:Python 将3d数组拆分为具有不同秒索引的2d数组的最适合的方法是什么?,python,arrays,multidimensional-array,Python,Arrays,Multidimensional Array,我有一个函数foo,它返回一个形状为(1000,3,1000)的数组 如何将其拆分为三个阵列a(1000,1000)、b(1000,1000)和c(1000,1000) 我在找这样的东西: a,b,c = foo()[:,*,:] 这将导致a,b,c等于: res = foo() a = res[:,0,:] b = res[:,1,:] c = res[:,2,:] 我相信以下任何一项都会奏效: numpy.split(foo(), 3, axis=1) numpy.hsplit(foo(
a,b,c = foo()[:,*,:]
这将导致a,b,c等于:
res = foo()
a = res[:,0,:]
b = res[:,1,:]
c = res[:,2,:]
我相信以下任何一项都会奏效:
numpy.split(foo(), 3, axis=1)
numpy.hsplit(foo(),3)
list(numpy.swapaxes(foo(), 0, 1))
与您的类似:
如果没有np.挤压
你会得到(1000,1,1000)的形状。这也应该有效:
a,b,c = np.rollaxis(foo(), 1)
您的问题不清楚,请展示您的尝试
a,b,c = np.rollaxis(foo(), 1)