python - 类似于 numpy.take 的函数,用于索引 out 参数
问题描述
在 的文档中numpy.take
,表示a
根据indices
和进行索引axis
,然后将结果可选地存储在out
参数中。是否存在执行索引的函数out
?使用花哨的索引它会是这样的:
out[:, :, indices, :] = a
在这里,我假设axis=2
但在我的情况下,我事先并不知道轴。使用一维布尔掩码而不是索引的解决方案也是可以接受的。
解决方案
您可以像这样使用交换轴:
>>> A = np.arange(24).reshape(2,3,4)
>>> out = np.empty_like(A)
>>> I = [2,0,1]
>>> axis = 1
>>> out.swapaxes(0, axis)[I] = A.swapaxes(0, axis)
>>> out
array([[[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[ 0, 1, 2, 3]],
[[16, 17, 18, 19],
[20, 21, 22, 23],
[12, 13, 14, 15]]])
推荐阅读
- tensorflow - 如何在 TensorFlow GRU 模型中添加 Attention 层?
- go - Go 静态文件服务在 Linux 中提供 404
- python - 每隔一段时间 ping 某人 discord.py
- javascript - 我的网站主页内容未按顺序加载
- django - 当我以 HTML 形式提交数据时,出价的数据类型是否发生了变化?
- javascript - 如何在 iframe 中获取元素的属性值?
- html - 如何使用 CSS Grid 跨越桌面上的元素并将它们堆叠在移动设备上?
- haskell - 模式同义词能否在每个方向上具有不同的类型签名,就像数字文字一样?
- javascript - 如何显示在下拉列表顶部选择的值?
- angular - Angular Universal SSR 未在 https 中呈现,但在 http 中呈现