的条件如下:如何在Numpy中“压缩”几个N-D数组?
1),我们有ND阵列的列表和该列表是未知长度的M
2)的尺寸的每个数组相等,但未知
3)每个阵列应该沿第0维劈裂和所得元件应当沿长度M
的1-ST尺寸被分组,然后沿着相同的长度是
4的第0维叠层式背面)产生的秩应N+1
和1维的长度应该是M
以上与zip
相同,但是在N-D数组的世界中。
目前我做的方式如下:
xs = [list of numpy arrays]
grs = []
for i in range(len(xs[0])):
gr = [x[i] for x in xs]
gr = np.stack(gr)
grs.append(gr)
grs = np.stack(grs)
我可以写与大容量操作较短?
UPDATE
这是我想
进口numpy的为NP
sz = 2
sh = (30, 10, 10, 3)
xs = []
for i in range(sz):
xs.append(np.zeros(sh, dtype=np.int))
value = 0
for i in range(sz):
for index, _ in np.ndenumerate(xs[i]):
xs[i][index] = value
value += 1
grs = []
for i in range(len(xs[0])):
gr = [x[i] for x in xs]
gr = np.stack(gr)
grs.append(gr)
grs = np.stack(grs)
print(np.shape(grs))
此代码apparantly正常工作,生产形状(30, 2, 10, 10, 3)
的阵列。是否有可能避免循环?
嗯...这将变得更加清晰,如果你能提供某种样品的输入和输出。 –
然后你将采取样本输入的维度,但我想避免这个:) –