Я просмотрел все в поисках ответа на этот вопрос, но, похоже, ничего не отвечает всем требованиям. У меня есть очень большие файлы, которые я пытаюсь прочитать с помощью ATpy, и данные поступают в виде массивов numpy. Для файлов меньшего размера достаточно следующего кода:
sat = atpy.Table('satellite_data.tbl')
Оттуда я создаю ряд переменных, которыми я должен манипулировать позже для целей построения графика. Таких операций много:
w1 = np.array([sat['w1_column']])
w2 = np.array([sat['w2_column']])
w3 = np.array([sat['w3_column']])
colorw1w2 = w1 - w2 #just subtracting w2 values from w1 values for each element
colorw1w3 = w1 - w3
и т. д.
Но с очень большими файлами компьютер не справляется. Я думаю, что все данные сохраняются в памяти до начала синтаксического анализа, а это невозможно для файлов размером 2 ГБ. Итак, что я могу использовать вместо этого для обработки этих больших файлов?
Я видел много сообщений, где люди разбивают данные на куски и используют циклы for
для перебора каждой строки, но я не думаю, что это сработает для меня, учитывая природу этих файлов и виды операции, которые мне нужно выполнить с этими массивами. Я не могу просто сделать одну операцию над каждой строкой файла, потому что каждая строка содержит ряд параметров, которые присваиваются столбцам, а в некоторых случаях мне нужно сделать несколько операций с цифрами из одного столбца.
Честно говоря, я не очень понимаю все, что происходит за кулисами с ATpy и numpy. Я новичок в Python, поэтому я ценю ответы, которые ясно объясняют это (т. Е. Не полагаясь на множество неявных знаний о кодировании). Должен быть чистый способ разбора этого, но я его не нахожу. Спасибо.