Ответ 1
Когда вы вызываете getrefcount()
, ссылка копируется по значению в аргумент функции, временно нажимая счетчик ссылок на объект. Вот откуда берется вторая ссылка.
Это объясняется в документации:
Возвращаемый счет, как правило, выше, чем вы могли ожидать, потому что он включает (временную) ссылку в качестве аргумента для
getrefcount().
Что касается вашего второго вопроса:
Если "del a", будет ли существовать "numpy.array([1.2.3.4]) объект (нет сборки мусора)?
К моменту завершения getrefcount()
счетчик ссылок массива будет возвращаться к 1, а последующий del a
освободит память.