Я работаю с массивом numpy, который довольно плотный (например, 20-50%), но имеет большие области, которые имеют одинаковое значение. Например, у меня может быть массив что-то вроде:
[[0 0 0 0]
[1 2 3 4]
[0 0 0 0]
[3 4 5 6]]
Вместо того, чтобы хранить строки, заполненные одинаковыми значениями (строка 0) как отдельные строки в памяти, есть ли способ разделить память строк так, чтобы строки 0 и 2 обращались к одной и той же памяти? Я ищу что-то, что либо встроено в NumPy или позволит нормальным NUMPY функции работать с таким массивом. Мне нужно, чтобы это выглядело так, как будто я все еще использую массив numpy.
Несколько заметок:
Я знаю, что я могу просто создать объект в Python, который просто отображает входные индексы на их индекс данных в некотором массиве numpy, но я также хочу, чтобы этот объект обрабатывался как массив numpy, поэтому я могу вызывать на нем функции numpy .
Я уже видел разреженные матрицы, но мои данные не так уж и редки, поэтому мне кажется, что алгоритмы разреженных матриц не будут работать так же эффективно.