Ich habe ein 4D numpy Array, betrachten die 4. Dimension als die "Zeit" Dimension. Aufeinanderfolgende Frames werden als zweidimensionale Heatmap gezeichnet, wobei die ersten beiden Dimensionen verwendet werden - Sie erhalten eine "Animation". Wenn ich die Ausführungszeit bemesse, bekomme ich 16 Sekunden für 26 Frames, was ziemlich niedrig ist. Wie kann ich die Ausführungszeit des unten stehenden Codes beschleunigen? Ich würde es vorziehen, Seaborn zu verwenden, um die Heatmaps anstelle von Matplotlib zu erstellen (obwohl es eine Erweiterung von letzterem ist).Seaborn Heatmap Plotten Ausführungszeit Optimierung
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import time
data = np.load('data.npy')
fig = plt.figure()
ax = fig.add_subplot(111)
im = sns.heatmap(np.zeros((256, 128)), cmap = 'viridis', vmin = 0, vmax = 90)
plt.show(block = False)
start = time.time()
for i in range (0, data[0, 0, 0, :].size):
plt.clf()
sns.heatmap(20*np.log10(abs(data[:, :, 2, i])), cmap = 'viridis', vmin = 0, vmax = 90)
fig.canvas.draw()
end = time.time()
print(end - start)
Wie wäre es pre-compute: '20 * np.log10 (np.abs (data)) 'bevor Sie in die Schleife gehen und diese innerhalb der Schleife verwenden, ohne dass die Berechnung involviert ist? – Divakar
Gute Idee - es wurde um 4 Sekunden verbessert - jetzt werden 26 Bilder in 11,7 Sekunden angezeigt. Einige Daten: https://drive.google.com/open?id=0B6ksYqU-Jy7sRkczaVBLS3NuOUU –
Ich brauche eine Bildrate von etwa 12,5 Hz - die gesamte Anzeigezeit für dieses Dataset sollte etwa 2-3 Sekunden betragen. –