Zastanawiam się, czy istnieje sposób pracy z dużymi plikami w Mathematica? Obecnie mam plik około 500 MB z danymi tabeli.Sposób radzenia sobie z dużymi plikami danych w Wolfram Mathematica
Import["data.txt","Table"];
Co to jest alternatywa?
Zastanawiam się, czy istnieje sposób pracy z dużymi plikami w Mathematica? Obecnie mam plik około 500 MB z danymi tabeli.Sposób radzenia sobie z dużymi plikami danych w Wolfram Mathematica
Import["data.txt","Table"];
Co to jest alternatywa?
Użyj OpenRead["file"]
, który daje obiekt InputStream
, w którym można użyć Read[stream]
. W zależności od formatowania pliku danych może być konieczne ustawienie niestandardowych wartości opcji w Read[]
dla RecordSeparators
.
Przykład:
In[1]:= str = OpenRead["ExampleData/USConstitution.txt"]
Out[1]= InputStream["ExampleData/USConstitution.txt", 24]
In[2]:= Read[str, Word]
Out[2]= "We"
In[3]:= Read[str, Word]
Out[3]= "the"
In[4]:= Read[str, Record]
Out[4]= "People of the United States, in Order to form a more perfect Union,"
Musisz pamiętać, aby zamknąć strumień po zakończeniu. Ponadto, jeśli przerwiesz operację, strumień pozostanie otwarty. Może to spowodować nieprzyjemne niespodzianki. Polecam więc owijając odczytany kod w 'CheckAbort', aby złapać przerwanie, a następnie zamknij strumień niezależnie od tego, czy operacja została przerwana, czy nie. – rcollyer
Doskonały punkt! – Timo
Można również wczytać dane do bazy danych (na przykład MySQL) i do niego dostęp z Mathematica wykorzystaniem DatabaseLink
świetna rada! dzięki –
Funkcja DumpSave
mogą być również przydatne do zapisywania dużych zbiorów danych. Zapisuje dane w wewnętrznym formacie Mathematica, dzięki czemu jest bardziej wydajna zarówno pod względem czasu, jak i wielkości pliku.
Co jest nie tak w ten sposób? – kennytm
Ładowanie dużego pliku trwa zbyt długo. i myślę, że też za dużo pamięci. –
Podobne pytanie zadano ponownie tutaj: http://stackoverflow.com/questions/7525782/import-big-files-arrays-with-mathematica. Podałem dwa rozwiązania dla gęstych i rzadkich tabel, które mogą znaleźć się na tych stronach. Są nadal dość powolne, ale o wiele bardziej wydajne pod względem pamięci niż "Importuj". –