xtensor 的文档提供了 numpy 功能的映射(链接)。
该列表涵盖了许多用例,但有一个功能我无法重新创建。我有一个 2D 张量,我想选择由运行时构建的序列标识的特定行。我的理解是这可以防止使用 xt::drop 和 xt::keep ,因为它们是可变参数模板函数(我刚刚开始学习 c++,所以如果我遗漏了什么,请纠正我)。此外,该序列是不规则的,不能被 xt::range 复制。
这是我在 numpy 中想要的内容:
import numpy as np
row = 10
col = 3
array = np.arange(row*col).reshape([row, col])
chosen_rows = [0, 2, 3, 9] # imagine this is not known at compile time
subset_array = array[chosen_rows, :]
我找到了一个相关的帖子: Filtering multidimensional views in xtensor
这里用于选择行的标准是基于矩阵本身的元素,而在我的情况下,该标准是外部的。我可以在代表行索引的矩阵中添加一行,但我希望避免这种情况。顺便说一句,上面的发布日期和 xtensor 已经改变了,所以如果你对上面的帖子有更好的答案,我很乐意阅读。