通过水平、垂直和对角线复制每个项目来复制 2d 矩阵 x
Replication 2d Matrix x by replicating each item horizontally, vertically and diagonally
我有这个代码:
somearray = np.array([[1,4,7],[8,9,3]])
# i tried this
print(np.tile(somearray,2))
我得到了这个结果:
[[1 4 7 1 4 7]
[8 9 3 8 9 3]]
我尝试得到这个结果:
1 1 4 4 7 7
1 1 4 4 7 7
8 8 9 9 3 3
8 8 9 9 3 3
每个item都横向、纵向、对角复制,怎么办?
您可以使用 np.repeat 和 np.tile 来实现。请注意差异
np.repeat(np.repeat(somearray,2, axis=1),2,axis=0)
输出
array([[1, 1, 4, 4, 7, 7],
[1, 1, 4, 4, 7, 7],
[8, 8, 9, 9, 3, 3],
[8, 8, 9, 9, 3, 3]])
选项 2
np.tile(somearray,(2,2))
输出
array([[1, 4, 7, 1, 4, 7],
[8, 9, 3, 8, 9, 3],
[1, 4, 7, 1, 4, 7],
[8, 9, 3, 8, 9, 3]])
您尝试执行的操作称为上采样。您可以使用 np.repeat
函数:
somearray.repeat(2, axis=0).repeat(2, axis=1)
我有这个代码:
somearray = np.array([[1,4,7],[8,9,3]])
# i tried this
print(np.tile(somearray,2))
我得到了这个结果:
[[1 4 7 1 4 7]
[8 9 3 8 9 3]]
我尝试得到这个结果:
1 1 4 4 7 7
1 1 4 4 7 7
8 8 9 9 3 3
8 8 9 9 3 3
每个item都横向、纵向、对角复制,怎么办?
您可以使用 np.repeat 和 np.tile 来实现。请注意差异
np.repeat(np.repeat(somearray,2, axis=1),2,axis=0)
输出
array([[1, 1, 4, 4, 7, 7],
[1, 1, 4, 4, 7, 7],
[8, 8, 9, 9, 3, 3],
[8, 8, 9, 9, 3, 3]])
选项 2
np.tile(somearray,(2,2))
输出
array([[1, 4, 7, 1, 4, 7],
[8, 9, 3, 8, 9, 3],
[1, 4, 7, 1, 4, 7],
[8, 9, 3, 8, 9, 3]])
您尝试执行的操作称为上采样。您可以使用 np.repeat
函数:
somearray.repeat(2, axis=0).repeat(2, axis=1)