Чтобы добавить поле в структурированный массив numpy, достаточно просто создать новый массив с новым dtype, скопировать поверх старых полей и добавить новое поле. Тем не менее, мне нужно сделать это для массива, который занимает много памяти, и я бы предпочел не дублировать его все. И моя собственная реализация, и медленная реализация в дублирующей памяти numpy.lib.recfunctions.append_fields
.Удобный способ добавления поля в структурированный ndarray - без дублирования данных?
Есть ли способ добавить поле к структурированному ndarray
, без дублирующей памяти? Это означает, что можно избежать создания нового ndarray
, или способом создания нового ndarray
, который указывает на те же данные, что и старый?
Решения, которые делают дубликат RAM:
Там является similar question где тя llenge is удалить, не добавьте, поля. Решение использует представление, которое должно работать для подмножества исходных данных, но я не уверен, что его можно изменить, если я хочу, чтобы добавил полей.
Если ваш массив представляет собой представление в буфере, последнее из которого не используется, вы можете выделить дополнительные поля в последней половине (а не смежные с их существующей строкой). – Eric