python - 用特定值初始化特定形状的numpy数组
问题描述
嗨 numpy 初学者在这里:
我正在尝试创建一个形状为 NxWxHx2 的数组,并使用相应的索引值进行初始化。在这种情况下,W = H 总是。
例如:对于形状为 Nx5x5x2 的数组,如果我将它写在纸上,它应该是:
N次以下
(0,0) (0,1) (0,2) (0,3) (0,4)
(1,0) (1,1) (1,2) (1,3) (1,4)
(2,0) (2,1) (2,2) (2,3) (2,4)
(3,0) (3,1) (3,2) (3,3) (3,4)
(4,0) (4,1) (4,2) (4,3) (4,4)
我查看了“arange”fkt 以及使用“newaxis”扩展数组,但无法获得所需的结果。
抱歉,糟糕的格式。
谢谢您的帮助!
编辑:我想出了这样的东西,但它并不好。对于形状为 1x3x3x2 的数组
t = np.empty([1,3,3,2])
for n in range(1):
for i in range(3):
for p in range(3):
for r in range(2):
if r == 0:
t[n,i,p,r]=i
else:
t[n,i,p,r]=p
解决方案
一种方法是分配一个空数组
>> out = np.empty((N, 5, 5, 2), dtype=int)
然后使用广播,例如
>>> out[...] = np.argwhere(np.ones((5, 5), dtype=np.int8)).reshape(5, 5, 2)
或者
>>> out[...] = np.moveaxis(np.indices((5, 5)), 0, 2)
或者
>>> out[..., 0] = np.arange(5)[None, :, None]
>>> out[..., 1] = np.arange(5)[None, None, :]
推荐阅读
- git - 如何将 git 存储库目录转换为包含子模块的存储库?
- aem - 将特定路径的搜索结果显示在顶部而不是其他路径
- wpf - 错误 XLS0502 'WindowsFormsHost' 类型不支持直接内容
- symfony - 我无法从 JWT 获取用户
- python - 我如何在 python 中使用 asyncio 接收请求的大小
- python - 除了在 pyspark 中使用 rand(seed=) 之外,还有其他方法可以生成具有种子值的随机数吗?
- apache-spark - 如果从多个 MapR 位置读取数据,spark shuffle 如何工作?
- javascript - Javascript 弹出,焦点在关闭后不再打开
- django - 为什么帖子不显示在主页上?
- react-native - 无法连接到 GraphQL API 服务器