1
我有一個4D numpy數組,考慮第4維度是「時間」維度。連續幀被繪製爲2D熱圖,使用前兩個維度 - 您正在獲取「動畫」。在測量執行時間時,我獲得了26幀的16秒,這很低。我如何加快下面代碼的執行時間?我寧願使用Seaborn創建熱圖,而不是matplotlib(儘管它是後者的擴展)。Seaborn Heatmap繪圖執行時間優化
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)
如何預先計算:'20 * np.log10( np.abs(data))'在進入循環之前使用那些沒有涉及計算的循環內部? – Divakar
好主意 - 它改善了大約4秒 - 現在在11.7秒內顯示26幀。一些數據:https://drive.google.com/open?id=0B6ksYqU-Jy7sRkczaVBLS3NuOUU –
我需要大約12.5Hz的幀率 - 這個數據集的總體顯示時間應該是大約2-3秒。 –