我有一个(74, 743)
形状的numpy数组,代表了几秒钟人类语音的声谱图。我可以使用plt.subplots.matshow
轻松地将其转换为matplotlib图,但是我想知道是否有可能将图转换为原始的numpy数组?至少,matplotlib如何从任意形状的数组生成图像?
我正在尝试创建一个生成对抗网络,该网络将生成频谱图的图像(这是由于该网络在图像生成方面的优越性能)。然后,我想将这些频谱图图像转换为定量频谱图,即将其绘制成一个numpy数组。
答案 0 :(得分:0)
似乎您想将颜色图应用于2D阵列。使用matplotlib工具可能看起来像
import numpy as np
from matplotlib.colors import Normalize
import matplotlib.cm as cm
data = np.random.rand(74, 743)
cmap = cm.viridis
norm = Normalize(data.min(), data.max())
output = cmap(norm(data))
print(output.shape)
输出是形状为(74, 743, 4)
的数组,其值介于0和1之间,表示RGBA颜色。