Я все еще не понимаю, использовать ли список или массив numpy.
Я начал с последнего, но так как мне пришлось много добавлять, я закончил с множеством vstacks, замедляющих мой код.
Использованиеlist решит эту проблему, но мне также нужно удалить элементы, которые снова хорошо работают с delete в массиве numpy.
Как теперь выглядит, мне придется написать свой собственный тип данных (на скомпилированном языке, изаворачивать).Мне просто любопытно, если нет способа выполнить работу с использованием типа Python.
Чтобы подвести итог, это критерии, которым должен соответствовать мой тип данных:
- 2d n (переменных) строк, каждая строка k (фиксированных) элементов
- в памяти в виде одного куска (было бы неплохо для эффективной работы)
- добавляемая строка (со средним постоянным временем,как вектор C ++, просто всегда k элементов)
- удалить набор элементов (лучше всего: на месте, оставить свободное место в конце для последующего добавления)
- элемент доступа с учетом индекса строки и столбца (O(1) как данные [строка * k + столбец]
Мне кажется, как правило, полезно иметь такой тип данных и его невозможно реализовать в C / Fortran.
Что будетближе всего к Python? (или, может быть, как вы думаете, будет ли полезно написать класс Python для типа данных? какую производительность следует ожидать в этом случае?)