xview

Defined in xtensor/views/xview.hpp

template<class CT, class ...S>
class xview : public xt::xview_semantic<xview<CT, S...>>, public std::conditional_t<detail::is_contiguous_view<std::decay_t<CT>, S...>::value, xcontiguous_iterable<xview<CT, S...>>, xiterable<xview<CT, S...>>>, public xt::xaccessible<xview<CT, S...>>, public extension::xview_base_t<CT, S...>

Multidimensional view with tensor semantic.

The xview class implements a multidimensional view with tensor semantic. It is used to adapt the shape of an xexpression without changing it. xview is not meant to be used directly, but only with the view helper functions.

See also

view, range, all, newaxis, keep, drop

Template Parameters:
  • CT – the closure type of the xexpression to adapt

  • S – the slices type describing the shape adaptation

template<class E, class ...S>
inline auto xt::view(E &&e, S&&... slices)

Constructs and returns a view on the specified xexpression.

Users should not directly construct the slices but call helper functions instead.

See also

range, all, newaxis

Parameters:
  • e – the xexpression to adapt

  • slices – the slices list describing the view. view accepts negative indices, in that case indexing is done in reverse order.

template<class E>
inline auto xt::row(E &&e, std::ptrdiff_t index)

Constructs and returns a row (sliced view) on the specified expression.

Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.

Parameters:
  • e – the xexpression to adapt

  • index – 0-based index of the row, negative indices will return the last rows in reverse order.

Throws:

std::invalid_argument – if the expression has more than 2 dimensions.

template<class E>
inline auto xt::col(E &&e, std::ptrdiff_t index)

Constructs and returns a column (sliced view) on the specified expression.

Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.

Parameters:
  • e – the xexpression to adapt

  • index – 0-based index of the column, negative indices will return the last columns in reverse order.

Throws:

std::invalid_argument – if the expression has more than 2 dimensions.

Defined in xtensor/views/xslice.hpp

template<class A, class B>
inline auto xt::range(A start_val, B stop_val)

Select a range from start_val to stop_val (excluded).

You can use the shorthand _ syntax to select from the start or until the end.

using namespace xt::placeholders;  // to enable _ syntax

range(3, _)  // select from index 3 to the end
range(_, 5)  // select from index 0 to 5 (excluded)
range(_, _)  // equivalent to `all()`

See also

view, strided_view

template<class A, class B, class C>
inline auto xt::range(A start_val, B stop_val, C step)

Select a range from start_val to stop_val (excluded) with step You can use the shorthand _ syntax to select from the start or until the end.

using namespace xt::placeholders;  // to enable _ syntax
range(3, _, 5)  // select from index 3 to the end with stepsize 5

See also

view, strided_view

Warning

doxygenfunction: Unable to resolve function “xt::all” with arguments None in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

- auto all() noexcept
- template<class E> bool all(E &&e)
inline auto xt::newaxis() noexcept

Returns a slice representing a new axis of length one, to be used as an argument of view function.

See also

view, strided_view

inline auto xt::ellipsis() noexcept

Returns a slice representing all remaining dimensions, and selecting all in these dimensions.

Ellipsis will expand to a series of all() slices, until the number of slices is equal to the number of dimensions of the source array.

Note: ellipsis can only be used in strided_view!

xarray<double> a = xarray<double>::from_shape({5, 5, 1, 1, 5});
auto v = xt::strided_view(a, {2, xt::ellipsis(), 2});
// equivalent to using {2, xt::all(), xt::all(), xt::all(), 2};

See also

strided_view

template<class R = std::ptrdiff_t, class T>
inline auto xt::keep(T &&indices)

Create a non-contigous slice from a container of indices to keep.

Note: this slice cannot be used in the xstrided_view!

xt::xarray<double> a = xt::arange(9);
a.reshape({3, 3});
xt::view(a, xt::keep(0, 2); // => {{0, 1, 2}, {6, 7, 8}}
xt::view(a, xt::keep(1, 1, 1); // => {{3, 4, 5}, {3, 4, 5}, {3, 4, 5}}
Parameters:

indices – The indices container

Returns:

instance of xkeep_slice

template<class R = std::ptrdiff_t, class T>
inline auto xt::drop(T &&indices)

Create a non-contigous slice from a container of indices to drop.

Note: this slice cannot be used in the xstrided_view!

xt::xarray<double> a = xt::arange(9);
a.reshape({3, 3});
xt::view(a, xt::drop(0, 2); // => {{3, 4, 5}}
Parameters:

indices – The container of indices to drop

Returns:

instance of xdrop_slice