Ich verstehe, dass in Cython ich kann nicht ein Array innerhalb einer Schleife cdef, ich muss dies vor der Schleife tun. Was passiert, wenn ich innerhalb der Schleife das Array, das ich außerhalb der Schleife initialisiert habe, bei jeder Iteration auf sehr unterschiedliche Größen gesetzt habe?cdef ein Array in Cython, das die Größe in einer Schleife ändert, gibt es Speicherprobleme?
etwas wie folgt vorstellen:
cdef int i
cdef int [:] A
for i in range(100):
A = np.zeros(np.random.randint(10, 1000), dtype=np.int32)
Die Größe des A
stark von Iteration zu Iteration variieren. Könnte dies zu irgendeiner Art von Speicherproblemen führen? Könnte jemand erklären, was genau in Erinnerung ist, wenn ich durch die Schleife gehe? Wenn das problematisch ist, gibt es Alternativen? Danke
Ich würde vorschlagen, diese Schleife in der anrufenden Putten Python-Code und Aufruf der Cython-Funktion mit dem 2d 'A'-Array. Konzentrieren Sie sich darauf, Geschwindigkeit zu gewinnen, wenn Sie 'A' verarbeiten. Wenn Sie 'A' so erstellen, wird Cythons Kompilierung nicht genutzt. – hpaulj