서버에서 큰 데이터 배열을 가져옵니다. 사전과 다차원 배열의 조합으로 저장하고 간단한 플롯에 사용됩니다. 다음과 같이 보입니다 :큰 배열을 포함하는 데이터 구조를 읽고 쓰려면 어떻게해야합니까?
>> print(data)
{'intensity_b2': [array([ 1.46562588e+09, 1.46562588e+09, 1.46562588e+09, ...,
1.46566369e+09, 1.46566369e+09, 1.46566369e+09]), array([ 0., 0., 0., ..., 0., 0., 0.])]}
>> print(len(data['intensity_b2'][0]))
37071
스크립트를 실행할 때마다 데이터를 가져 오지 않으려면이 데이터 구조를 파일에 저장하고 싶습니다. 나는
with open("data.dat", 'w') as f:
f.write(str(data))
로 데이터를 저장하고 here을 제안
with open(data_store, 'r') as f:
data = ast.literal_eval(f.read())
로 그것을 읽어보십시오. 그러나, 나는 내가 (즉, 위의 첫 번째 print(data)
이 데이터를 찾습니다되어 말 그대로 어떻게 최초의 인쇄물에 표시되었을 때 데이터가 ...
와 함께 저장됩니다 때문이다 의심 오류
ValueError: malformed node or string: <_ast.Call object at 0x108fce5f8>
를 얻을 파일). 큰 배열을 가진 사전을 파일에 쓰고 그 후에 읽으려면 어떻게해야합니까?
답장을 보내 주셔서 감사합니다. 어떻게 그렇게 바퀴를 재가공 하는가? 데이터는 플로팅 용으로 만 사용됩니다. – pingul
제공된 detais에서 추측하면 원격 서버에서 데이터를받은 다음 중첩 된 배열 사전으로 변환 한 다음 파일에 저장합니다. 'pandas'와'numpy'는 큰 데이터 세트를 저장하기위한 매우 효율적인 데이터 구조를 제공합니다. 배열 사전을 만들 필요는 없으며'numpy.array' 또는'pandas.DataFrame'을 사용할 수 있습니다. 두 모듈 모두 serialization과 파일 저장을위한 도구가 내장되어 있으며'numpy'보다 상위 모듈 인'pandas '는 거의 모든 형식 (json, csv, ....)으로 데이터를 변환 할 수 있습니다. . –
@pingul 그것은 서버에서 데이터를받는 것과 파일에 저장하는 것 (그리고 파이썬에서 플롯을 빌드하는지 여부)에 따라 다릅니다. 나는 당신이 약간의 데이터 조작을한다면,'pandas'는 이미 그것을위한 도구가 내장되어있을 수 있다고 말하고 있습니다. –