- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想沿着一个轴从特定位置的X
数组中分散并收集元素。
因此,给定一个索引数组idx
,我想选择第0列的idx(0)
th元素,第1列的idx(1)
th元素,等等。
在Numpy中,以下语句:
X = np.array([[1, 2, 3], [4, 5, 6]])
print(X[[0, 1, 1], range(3)])
[1, 5, 6]
。
Y = np.zeros((2, 3))
Y[[0, 1, 1], range(3)] = [1, 5, 6]
print(Y)
[[1. 0. 0.]
[0. 5. 6.]]
float elements[] = {1, 2, 3, 4, 5, 6};
af::array X = af::array(3, 2, elements);
int idx_elements[] = {0, 1, 1};
af::array idx = af::array(3, idx_elements);
af::print("", X(af::span, idx));
1.0000 4.0000 4.0000
2.0000 5.0000 5.0000
3.0000 6.0000 6.0000
最佳答案
X
[3 2 1 1]
1.0000 4.0000
2.0000 5.0000
3.0000 6.0000
idx
[3 1 1 1]
0
1
1
Col\Row 0 1 1 from array
0 (0, 0) (0,1) (0, 1)
1 (1, 0) (1,1) (1, 1)
2 (2, 0) (2,1) (2, 1)
^
^ from sequence
X(af::span, idx))
的输出为3x3矩阵。
float idx_elements[] = {0, 1, 1}; // changed the idx to floats
af::array colIdx = af::array(3, idx_elements);
af::array rowIdx = af::iota(3); // same effect as span
af::array out = approx2(X, rowIdx, colIdx);
af_print(out);
// out
// [3 1 1 1]
// 1.0000
// 5.0000
// 6.0000
array::operator()
认为笛卡尔积。
af::array A = af::constant(0, 3, 2); // same size as X
af::array B = af::flat(A); // flatten the array, this involves meta data modification only
B(rowIdx + 3 * colIdx) = out; // use row & col indices to fetch linear indices
// rowIdx + 3 * colIdx
// [3 1 1 1]
// 0.0000
// 4.0000
// 5.0000
B = moddims(B, A.dims()); // reset the dimensions to original A dims
af_print(B);
// B
// [3 2 1 1]
// 1.0000 0.0000
// 0.0000 5.0000
// 0.0000 6.0000
关于c++ - 像ArrayFire中的Numpy一样分散/聚集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62073117/
如何在 af::array 中创建一个简单的行列式? 尝试在 af::array x 中使用:af::det(x)检测(x)x.det() 并且不起作用。 有人可以帮助我吗? error: no m
对本应简单的事物感到困惑。花了一些时间尝试调试它,但并没有走得太远。如果有人能帮助我,我将不胜感激。 我正在尝试通过指定此 function 中指定的值/列/行三元组来在 arrayfire 中定义一
我正在使用 arrayfire crate 以使用 af::load_image 打开图像。这为我提供了一个 f32 数组,我可以对其进行一些处理。完成后,我想使用 af::save_image 将其
我尝试翻转大小为 [249 1 50 20] 的矩阵,这是代码: array flipped_delta = flip(delta, 0); 我得到以下异常: Unhandled exception
我正在尝试使用 arrayFire python ( https://github.com/arrayfire/arrayfire-python ) 进行多 GPU 编程。 但是,当我尝试将其与并发
我正在尝试使用 GFOR 结构,但我什至不能让它用于基本的东西。 我怀疑 GFOR 循环不适用于线性索引,对吗? 这里有一些不起作用的代码示例 af::array x(100, 200); af::a
我最近在 GTC 上看到了 arrayfire 演示,我想我会尝试一下。以下是我在尝试使用它时遇到的一些问题。我在 Windows 7 系统上运行 Visual Studio 2013,使用来自 AM
我在从主机数据初始化 arrayfire 数组时遇到问题。 以下代码不会为我链接: constexp int mNumEigenInfos = 100; std::complex mEigenVect
我下载了 ArrayFire 库的免费版本。我试图用它来测试矩阵乘法。但是我得到了一堆 undefined reference ,例如 matrixdata.cpp:(.text+0x19e5): u
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
有没有办法在同一个位置多次更改数组? 当我这样做时: float a[] = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6 }; array A(6, a, afHost); af_p
我试图在循环中迭代地从 ArrayFire 数组 (af::array) 中删除元素。假设我有: af::array arr = af::range(af::dim4(4), -1, u32) + 1
在 ArrayFire 中使用固定内存时,性能变慢。 我已经尝试了各种创建固定内存和从中创建数组的方法,例如。 cudaMallocHost。使用带 cudaMemcpy 的 cudaMallocHo
我通过调用简单的 arrayfire 构造函数遇到了段错误。 #include int main(){ af_array a; int N = 10; dim_t dims
我最近在我的 Ubuntu 12.04 上安装了 ArrayFire 2.1。我想将它与 Python 一起使用,可以吗?我试过 ArrayFire_Python但它是不完整的,它不包括rotate等
我有一个关于在 ArrayFire for Python 中使用多个主机线程的新手问题。我们目前拥有高度并行的仅 CPU 代码,使用 Open MPI 和 mpi4py 进行并行化。每个 CPU 线程
假设我有一个 stl::array foo这是 Column-Major 格式 arrayfire 数组的线性化 STL 吊坠,例如af::array bar = af::array(4,3,2, 1
我正在使用在 Windows 10 + Nvidia Gtx 970 上运行的 ArrayFire 编写测试程序。该程序用于使用 SGD 求解器训练神经网络。因此,主要计算是更新网络参数的迭代。迭代在
我正试图在 ArrayFire 中饱和我的数组。我希望所有大于 0.75 的值都饱和到 1.0,所有小于 0.25 的值都饱和到 0.0。我正在使用以下表达式。 a(a > 0.75) = 1.0;
我想在 ArrayFire 中创建虚数单位,但我不能。我可以从实数矩阵构造一个复数矩阵,但这不是纯虚数。也许我可以使用 this page 中的函数 af_cplx2 .我想到了以下几点: af_ar
我是一名优秀的程序员,十分优秀!