пример использования xt :: where для xtensor C ++ - PullRequest
0 голосов
/ 11 июня 2018

Я новичок в xtensor.Мне интересно, как можно использовать вывод из xt :: где.Например, в python, предполагая, что imap является массивом nd, np.where (imap> = 4) возвращает два массива с индексами и может быть назначен непосредственно с помощью оператора =.Пожалуйста, дайте мне знать, как использовать его в контексте xtensor C ++.Любой маленький пример будет отличной помощью.

Спасибо.

1 Ответ

0 голосов
/ 12 июня 2018

возвращает xt :: xarray типа ввода.

xt::xarray<int> res = xt::where(b, a1, a2);

b - это истина, тогда элементы массива a1 возвращаются, если b - ложные элементы a2, то возвращаются,

Приведенный ниже пример скопирован из документации (поиск xt::where) http://xtensor.readthedocs.io/en/latest/operator.html

Первый элемент b - false - так что получите его из a2 - 11

Второй элемент

b - true - поэтому получите его от a1 - 3

Третий элемент b - true - получите его от a1 - 3

* 1025Четвертый элемент * b false - так что получите его от a2 - 14
xt::xarray<bool> b = { false, true, true, false };
xt::xarray<int> a1 = { 1,   2,  3,  4 };
xt::xarray<int> a2 = { 11, 12, 13, 14 };

xt::xarray<int> res = xt::where(b, a1, a2);
// => res = { 11, 2, 3, 14 }
...