Работайте с большими данными без утомительной оперативной памяти при кодировании с Python [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Работайте с большими данными без утомительной оперативной памяти при кодировании с Python [закрыто]

Сообщение Anonymous »

Я работаю над сценарием Python, который загружает несколько двоичных файлов, изменяет контент и хранит результаты в качестве массивов в словаре. Этот словарь позже используется для таких операций, как график и вычисление. Важно отметить: данные имеют время и пространственные зависимости, поэтому порядок загрузки имеет значение. Случайный доступ или переупорядочение разрывает логику. Я проверил онлайн, и большинство предложений - это либо использовать картирование памяти, либо чтение в роли. К сожалению, ни один из них не помогает в моем случае. Печать - это не вариант, и Chunking испортит структуру и порядок, на который я полагаюсь. < /P>
Есть ли другие практические способы справиться с такой ситуацией? Что -то, что могло бы снизить давление в памяти, но все же позволило мне работать с полной структурой по порядку? Двоирные файлы зависят от периода времени, который я изучаю, он достигает 2 лет, который я еще не проверял, он блокируется через 5 месяцев. 8 переменных были заполнены в словаре, 10 ГБ или 750 МБ для тестового примера. < /P>
def readbin2d(cfg):

# load the file
data = np.fromfile(
os.path.join(cfg["fname"], 'data.bin'), "f")
# data dimension
try:
data.shape = (cfg["n_t"], cfg["Nx"], cfg["Ny"], cfg["Nz"])
except ValueError as exc:
raise ValueError ("dimension error.") from exc

# save the data in a dictionary
result = {
'data' : np.array(data)
}
return data

def compute(cfg, result):
# compute a data using arrays in result
for t in range(cfg['n_t']):
for j in range(cfg['Ny']):
for i in range(cfg['Nx']):
''' operations and conditions'''
return final_data

def plots(cfg, result, final_data):
# plot using final_data and arrays in result
data_in_result = result['data'].flatten()
''' bunch of plots with arrays in result and final_data'''

def main():
result = read_bin(cfg)
final_data = compute(cfg, result)
plots(cfg, result, final_data)


Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»