Недостаточно памяти на условном выделении
Я читал, что python может использовать всю физическую память, доступную на машине, поэтому он не должен исчерпывать память, прежде чем фактически заполнить все свободные 9+ ГБ моего ноутбука.
Однако использование laspy для анализа облака точек 10 МБ (200 МБ) и выбор точек следующим образом приводит к ошибке нехватки памяти:
inFile = File(sys.argv[1], mode = "r")
all_points = np.vstack([inFile.x, inFile.y, inFile.z, inFile.return_num, inFile.intensity]).transpose()
lower_points = all_points[ 1 > inFile.z ]
upper_points = all_points[ 1 <= inFile.z ]
Последний условный выбор вызывает ошибку памяти. На самом деле есть 2М баллов, которые удовлетворяют первому условию, и 10М баллов в общей сложности, поэтому 8М баллов должны удовлетворять второму условию.
Если я изменю upper_points на обычный список (как:[]) и.append для каждой точки, z которой больше 1, это работает без проблем.
8M точек должны быть примерно 200 МБ или чуть больше, поэтому я не совсем понимаю проблему. Что мне не хватает?