所以我的大问题是我有一个很大的形状数组,比如(754580)。首先,我想用随机数(来自截断正态分布)填充这个数组。这是非常简单的,scipy.stats.truncnorm.rvs(..., size= (754, 580))
起到了作用
然而,现在我想避免使用完全随机的数字。相反,我希望每个数字在行和列中重复m
次(并在边缘处截断)。e、 例如,我想用m=3填充a(5,10),期望的输出可以是
[[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 ]]
因为每个元素沿着每行重复三次(除了最后一行,因为总共只有10行而不是12行,所以它被截断),并且沿着每一列重复三次(除了最后一行,因为总共只有5行而不是6行而被截断)
我相信截断非常容易处理,我可以生成一个(6,12)数组,然后只选择第一个(5,10)切片。但我很难让重复发生在x和y方向,就像例子中那样
如何为generalm
执行此操作
TLDR:
例如,提供m=3,我如何从
[[0.32 0.569 0.532 0.75 ]
[0.158 0.49 0.33 0.12 ]]
to(用于设定目标尺寸(5,10))
[[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 ]]
甚至只是
[[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 0.75 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 0.75 0.75 ]
[0.32 0.32 0.32 0.569 0.569 0.569 0.532 0.532 0.532 0.75 0.75 0.75 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 0.12 0.12 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 0.12 0.12 ]
[0.158 0.158 0.158 0.49 0.49 0.49 0.33 0.33 0.33 0.12 0.12 0.12 ]]
我将使用
np.kron
创建瓷砖,然后使用切片将其切割到所需的大小相关问题 更多 >
编程相关推荐