Ich habe verschiedene Methoden versucht, um Datenkomprimierung durchzuführen, wenn auf Festplatte einige numpy arrays
gespeichert werden.Numerische Arrays effizient komprimieren
Dieser 1D-Arrays enthält Daten bei einer bestimmten Abtastrate abgetastet (kann Ton mit einem Mikrofon aufgenommen werden, oder jede anderen Messung mit jedem Sensor): die Daten im wesentlichen kontinuierlichen (im mathematischen Sinne, natürlich nach der Probenahme es ist jetzt diskrete Daten).
Ich habe versucht, mit HDF5
(h5py):
f.create_dataset("myarray1", myarray, compression="gzip", compression_opts=9)
aber das ist ziemlich langsam, und das Verdichtungsverhältnis ist nicht das Beste, was wir erwarten können.
Ich habe auch versucht mit
numpy.savez_compressed()
aber wieder kann es nicht der beste Komprimierungsalgorithmus für solche Daten sein (zuvor beschrieben).
Was würden Sie für eine bessere Kompressionsrate auf einem numpy array
mit solchen Daten wählen?
(dachte ich über Dinge wie lossless FLAC (ursprünglich für Audio ausgelegt), aber gibt es eine einfache Möglichkeit, einen solchen Algorithmus auf numpy Daten anzuwenden?)
Von einem Blick auf die Quelle scheint 'savez_compressed()' auch DEFLATE (d. H. 'Gzip') zu verwenden. Beachten Sie, dass die Effektivität der Komprimierung sehr stark von den Daten abhängt. Einige Daten sind einfach nicht sehr komprimierbar ... – delnan
@delnan: meine Daten sind Audio oder ähnliche Art von Daten ...Verlustfreie Kompression auf Audio kann ein Verhältnis von fast 2: 1 erreichen, deshalb habe ich so etwas für mein Array mit Audiodaten erwartet. – Basj
Nun, es hängt auch vom Kompressionsalgorithmus ab. Es gibt einen Grund dedizierte Algorithmen für die Audiokomprimierung, sie dienen Ihnen wahrscheinlich besser als DEFLATE. Ich weiß nicht, wie man FLAC et al. auf numpigen Daten, oder ich würde jetzt eine Antwort schreiben. – delnan