numpy.memmap aus numpy Operationen

9

Ich arbeite mit ziemlich großen Arrays, die aus großen Bilddateien erstellt wurden. Ich hatte Probleme mit zu viel Speicher und entschied mich dafür, numpy.memmap -Arrays anstelle von numpy.array zu verwenden. Ich konnte ein memmap erstellen und die Daten aus meiner Bilddatei in Stücke laden, aber ich bin mir nicht sicher, wie ich das Ergebnis einer Operation in ein memmap laden soll.

Zum Beispiel werden meine Bilddateien in numpy als binäre Integer-Arrays gelesen. Ich habe eine Funktion geschrieben, die jede Region von True -Zellen mit einer bestimmten Anzahl von Zellen puffert (erweitert). Diese Funktion konvertiert das Eingabearray unter Verwendung von Boolean in array.astype(bool) . Wie würde ich das neue Boolean -Array erstellen, das von array.astype(bool) a numpy.memmap -Array erstellt wurde?

Wenn sich eine True -Zelle näher am Rand des Eingabearrays befindet als die angegebene Pufferdistanz, fügt die Funktion Zeilen und / oder Spalten am Rand des Arrays hinzu, um einen vollständigen Puffer um den existing True cell. Dies ändert die Form des Arrays. Ist es möglich, die Form von numpy.memmap ?

zu ändern?

Hier ist mein Code:

%Vor%     
Brian 30.09.2013, 15:36
quelle

1 Antwort

1

Lassen Sie mich versuchen, den ersten Teil Ihrer Frage zu beantworten. Laden eines Ergebnisses in einen Memmap-Datenspeicher.

Hinweis: Ich gehe davon aus, dass sich bereits eine memmap-Datei auf der Festplatte befindet - sie wird die Eingabedatei sein. Genannt MempmapInput, erstellt wie folgt:

%Vor%

In Ihrem Fall ist die Ausgabedatei möglicherweise nicht vorhanden, aber pro Dokument: 'r +' Öffnen Sie die vorhandene Datei zum Lesen und Schreiben.

'w +' Erstellt oder überschreibt vorhandene Dateien zum Lesen und Schreiben.

Wenn Sie also zum ersten Mal eine memmap-Datei erstellen, muss diese mit einem 'w +' versehen sein, danach können Sie die Datei ändern / überschreiben, verwenden Sie 'r +', Read-only-Kopien können mit 'r' erhalten werden. Weitere Informationen finden Sie Ссылка .

Nun werden wir diese Datei einlesen und einige Operationen ausführen. Der Hauptpunkt ist, ein Ergebnis in eine Memamp-Datei zu laden, die Memmap-Datei muss zuerst erstellt und an eine Datei angehängt werden.

%Vor%

Machen Sie mit der fpOutput memmap-Datei, was Sie wollen, z. B.:

%Vor%     
Paul 01.10.2013 17:03
quelle

Tags und Links