- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 xtensor,这样我就可以从 Python 中使用它。然而,xtensor 的吸引力之一是它也很容易为 R 进行绑定(bind),因此编写一次算法,然后为 python 和 R 编写绑定(bind),就完成了。
我从 python 开始,当我将参数类型设置为 xt::pyarray 时,我的代码可以正常运行。
void func(const xt::pyarray<float> x) { ... }
...
m.def("func", &func);
但是,我怀疑如果我尝试进行 R 绑定(bind),xt::pyarray 将不合适。此外, xt::pyarray 可能是 xt::xarray 类型。我记得在某处读到 xt::xtensor 可以更好地优化,因为维度的数量是事先已知的。所以 xt::xtensor 是正确的选择。
void func(const xt::xtensor<float, 2> x) { ... }
...
m.def("func", &func);
所以我做了这个改变,而且很棒 - 它仍然有效。但是现在,我不知道如何从 numpy 调用它。如果我按照以前的方式调用它,使用 np.ndarrays,这将不再有效并通知我类型不匹配。我也尝试过使用 np.asmatrix(x, dtype=np.float32)
转换 np.ndarrays,但这也不起作用。
我应该如何从 numpy 调用此函数才能使其正常工作?
最佳答案
xtensor
的 xtensor-python
是 pytensor
就像 pyarray
是 xtensor- pyrhon
等价于 xarray
。请注意,xtensor
和 pytensor
是不同的类型,即使它们接受相同类型的模板参数。 pytensor
可以分配一个 numpy 数组,而 xtensor
不能(同样代表 xarray
和 pyarray
)。
关于调用代码形式 R 的能力,你是对的,pyarray
和 pytensor
不是合适的类型。解决这个问题的一种方法是将您的实现放在接受任何类型表达式的泛型函数中,然后为每种语言创建接口(interface),接受适当的类型并转发给实现。
您可以在 xtensor documentation 中找到有关将 C++ 代码编写为其他语言的绑定(bind)的更多详细信息或在 this blogpost
关于python - xtensor 将 numpy 数组传递给具有 xt::xtensor 参数类型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56184103/
我正在尝试使用 xtensor,这样我就可以从 Python 中使用它。然而,xtensor 的吸引力之一是它也很容易为 R 进行绑定(bind),因此编写一次算法,然后为 python 和 R 编写
我正在玩弄 xtensor,我只是想执行一个简单的操作来选择具有特定列值的行。假设我有以下数组。 [ [0, 1, 1, 3, 4 ] [0, 2, 1, 5, 6 ] [0, 3, 1,
在这里,我试图对C++中的xtensor库进行非常基本的操作。我有xarray a,并且有了index related function xt::where,我想获取条件为True的索引数组(请注意,
考虑以下程序: #include #include "xtensor/xarray.hpp" #include "xtensor/xio.hpp" #include "xtensor/xview.h
我正在使用 C++ 的 Xtensor 库。 我有一个 xt::zeros({n, n, 3}) 数组,我想为其 i, j, 元素分配一个 xt::xarray{ , , } 以便它存储 3D 维度每
我正在尝试从 caffe 库中的 blob 数据创建一个 xtensor 数组。使用 caffe 中的函数 mutable_cpu_data() 返回指向数据的指针,例如 float* data =
只需点击 xtensor,我喜欢它,我会尝试从 vba(excel)中使用它。 为了保持这个“测试”简单,我打算只使用 double 矩阵,它们作为 LPSAFEARRAY 传递给 C/C++ dll
假设我有一个张量: xt::xtensor_fixed, xt::layout_type::column_major> withnans = { {3, std::numeric_limits::q
xtensor 的文档提供了 numpy 功能的映射 ( link )。 该列表涵盖了许多用例,但我无法重新创建一项功能。我有一个 2D 张量,我想选择由在运行时构建的序列标识的特定行。我的理解是这阻
我在学习xtensor并希望获得与 NumPy 相同甚至更高的性能。但不幸的是,我不能也需要帮助。 我做了与 here 类似的基准测试: Performance of xtensor types vs
我正在尝试使用简单条件过滤 2D xtensor View 。我找到了 xt::filter 函数,但是当我使用它时,它只返回过滤 View 的第一列。我需要二维过滤 View 。最好的方法是什么?
复制view有没有类似numpy copy的功能?如果不是,那么深度复制复杂 View 的最简单方法是什么?复制构造函数仍然指向相同的内部值,这在大多数情况下都很好,但有时需要深复制。 最佳答案 如果
我正在尝试 xtensor-python在使用 cookiecutter setup 之后,开始编写一个非常简单的求和函数并使用 xsimd 启用 SIMD 内部函数. inline double s
我最近试图比较不同的 python 和 C++ 矩阵库的线性代数性能,以便了解在即将进行的项目中使用哪个。虽然有多种类型的线性代数运算,但我选择主要关注矩阵求逆,因为它似乎给出了奇怪的结果。我在下面编
标题说明了 - numpy 的 xtensor 等价物是什么 # set all elements > 3 to 1 sometensor[sometensor > 3] = 1 ? 它看起来像 xt
我是 xtensor 的新手。我想知道如何使用 xt::where 的输出。在 python 中,例如假设 imap 是一个 nd 数组, np.where(imap>=4) 返回两个带索引的数组,可
我有一个 2D xtensor View ,我想从中删除一条具有已知索引的线。使用 numpy,有 delete() 方法,使用它很容易做到。有没有类似的方法可以用 xtensor 做到这一点? 最佳
从 cpp 文件复制: #include #include #include #include #include using int8 = std::int8_t; template vo
我目前正在为一个应用程序使用 xtensor,我想包装张量以创建一个名为 BitArray 的类。 #include #include "xtensor/xarray.hpp" #include "
我正在尝试在 xarray 中查找某些数组值的索引值。我有一个名为 lattice 的 xarray,其中包含数字 1 到 n,我想要的是类似 auto x2 = xt::where(lattice
我是一名优秀的程序员,十分优秀!