假设我有4个5x5的numpy数组。我需要将它们变成一个5x5x4的numpy数组。将它们放入一个列表中,然后对该列表进行numpy,使它们成为一个4x5x5的数组。所以我想我需要每个元素都是它们给定的x,y元素的数组。我可以在Python中使用蛮力,但我有一种感觉,我只是缺少一些更快的numpy内置。
target = np.zeros((3, 3, 4))
arrays = []
for i in range(4):
arrays.append(np.zeros((3, 3)))
new_array = []
for y in range(3):
row = []
for x in range(3):
item = []
for a in range(4):
item.append(arrays[a][x][y])
row.append(item)
new_array.append(row)
final = np.array(new_array)
if final == target:
print("You've got it")
else:
print("Not yet, ", final, target)
2条答案
按热度按时间kh212irz1#
只需使用
np.stack
和axis=-1
参数。如果你有一个数组,使用
np.stack
,然后使用transpose
或swapaxis
,这是一样的。一个二个一个一个
cotxawn72#
不使用嵌套的for循环,你可以使用
np.swapaxes()
:final = np.swapaxes(arrays, 0, 2)
更一般地,可以使用
np.stack()
: