2024-06-25 05:48:08 发布
网友
我正在尝试建立一个像沙扎姆一样的音频指纹算法
我有一个可变长度的频点数据数组,如下所示:
[[69, 90, 172], [6, 18, 24], [6, 18], [6, 18, 24, 42], [] ...
我想把它画成像这样的光谱图。我的数据没有明确的时间序列轴,但每行都是0.1s的时间片。我知道plt.specgram
np.repeat可以创建一个伴随的x数组。它需要一个从输入值计算的大小数组
np.repeat
下面是一个假设x相距.1的示例(与文章中的描述类似,但与示例图像不同)
import numpy as np import matplotlib.pyplot as plt # ys = [[69, 90, 172], [6, 18, 24], [6, 18], [6, 18, 24, 42]] ys = [np.random.randint(50, 3500, np.random.randint(2, 6)) for _ in range(30)] sizes = [len(y) for y in ys] xs = [np.repeat(np.arange(.1, (len(ys) + .99) / 10, .1), sizes)] plt.scatter(xs, np.concatenate(ys), marker='x', color='blueviolet') plt.show()
np.repeat
可以创建一个伴随的x数组。它需要一个从输入值计算的大小数组下面是一个假设x相距.1的示例(与文章中的描述类似,但与示例图像不同)
相关问题 更多 >
编程相关推荐