ndarray: Как разбить массив? - PullRequest
0 голосов
/ 25 мая 2020

Ищу функциональность функции .split_of, которая используется с Vec (https://doc.rust-lang.org/std/vec/struct.Vec.html#method .split_off )

В настоящее время я пытаюсь использовать функцию split_at : (документы: https://docs.rs/ndarray/0.13.1/ndarray/struct.ArrayBase.html#method .split_at )

Использование:

let mut data: Array2<f32> = array![[1.,2.],[3.,4.],[5.,6.],[7.,8.]];
let split = data.split_at(Axis(0),1);

Получение ошибки:

method not found in `ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<{float}>, ndarray::dimension::dim::Dim<[usize; 2]>>`

Что мне не хватает здесь?

1 Ответ

1 голос
/ 25 мая 2020

Согласно документации, они определены только для ArrayView s, а не Array s.

К сожалению, это указано прямо над split_at в документации, что позволяет легко пропустить, если просто щелкнуть по нему на боковой панели методов.

Методы для представлений массива только для чтения.

аналогично для представлений чтения-записи.

Инициализация представления и его разделение, как показано в split_at документация должна работать нормально.

...