我有一个形状为 2、5 的数组 X,如下所示:
0, 6, 7, 9, 1
2, 4, 6, 2, 7
我想将其 reshape 为将每行重复 n 次,如下所示(示例使用 n = 3):
0, 6, 7, 9, 1
0, 6, 7, 9, 1
0, 6, 7, 9, 1
2, 4, 6, 2, 7
2, 4, 6, 2, 7
2, 4, 6, 2, 7
我尝试按如下方式使用 np.tile,但它重复如下所示:
np.tile(X, (3, 5))
0, 6, 7, 9, 1
2, 4, 6, 2, 7
0, 6, 7, 9, 1
2, 4, 6, 2, 7
0, 6, 7, 9, 1
2, 4, 6, 2, 7
我如何有效地创建所需的输出?
最佳答案
如果a
是主数组:
a = np.array([0, 6, 7, 9, 1, 2, 4, 6, 2, 7])
我们可以通过首先 reshape 为所需的数组形状,然后使用 np.repeat
来实现此目的:
b = a.reshape(2, 5)
final = np.repeat(b, 3, axis=0)
也可以用np.tile
来完成,但它需要不必要的额外操作,如下所示。因此,np.repeat
将是更好的选择。
test = np.tile(b, (3, 1))
final = np.concatenate((test[::2], test[1::2]))
关于python - 如何使用 nptile reshape 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71637473/