首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将numpy数组元素复制到多个方向

将numpy数组元素复制到多个方向
EN

Stack Overflow用户
提问于 2021-06-03 16:39:23
回答 1查看 34关注 0票数 0

所以我的大问题是,我有很多形状,比如说(754,580)。首先,我想用随机数填充这个数组(来自截断的正态分布)。这是非常简单的,scipy.stats.truncnorm.rvs(..., size= (754, 580))做到了这一点。

然而,现在我想避免有完全随机的数字。相反,我希望每个数字在中重复行和列中的次数(并在边缘被切断)。例如,假设我想用m=3填充一个(5,10),所需的输出可能如下

代码语言:javascript
运行
复制
[[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两个方向,就像在例子中一样。

我怎样才能为一般的m做到这一点?

TLDR:

例如,如何提供m=3

代码语言:javascript
运行
复制
[[0.32  0.569 0.532 0.75 ]
 [0.158 0.49  0.33  0.12 ]]

调至(用于设定目标大小(5,10))

代码语言:javascript
运行
复制
[[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 ]]

甚至只是

代码语言:javascript
运行
复制
[[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 ]]
EN

回答 1

Stack Overflow用户

发布于 2021-06-03 16:48:30

我将使用np.kron创建瓷砖,然后使用切片将其切割到所需的大小。

代码语言:javascript
运行
复制
a = np.array([[0.32  0.569 0.532 0.75 ]
              [0.158 0.49  0.33  0.12 ]])
np.kron(a, np.ones((3, 3), dtype=a.dtype))[:5, :10]
代码语言:javascript
运行
复制
[[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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67825429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档