【问题标题】:too many indicies for an array数组的索引太多
【发布时间】:2019-07-30 13:44:46
【问题描述】:

我在this question 中使用了来自用户 Anil_M 的代码,我希望得到相同的结果。但在我的情况下,它会绘制第一张图片

然后我得到一个错误

Traceback (most recent call last):
  File "c:/Users/Maram/Desktop/Spectrogram/first_attempt.py", line 73, in <module>
    fftArray = fftArray[0:numUniquePoints]
TypeError: slice indices must be integers or None or have an __index__ method 

我不明白

或者当我尝试使用稍大的 wav 文件时,它甚至不显示第一张图像。我只是得到这个错误:

Traceback (most recent call last):
      File "c:/Users/Maram/Desktop/Spectrogram/first_attempt.py", line 38, in <module>
        mySoundOneChannel = mySound[:,0]
    IndexError: too many indices for array

我认为这些错误在某种程度上是相关的,但我只是不明白它是如何或为什么造成的。

有人可以帮我让它运行一个更大的 wav 文件/更长的轨道,或者帮我让我现有的代码运行功率对频率图吗? 任何帮助将非常感激。

(我不知道这是否被认为是重复的 - 在原来的问题中,没有人遇到同样的问题。)

【问题讨论】:

  • 首先numUniquePoints是什么?第二,mySound.shape是什么?

标签: python arrays numpy wav spectrogram


【解决方案1】:

语句mySoundOneChannel = mySound[:,0] 读取文件的第一个通道。如果您的文件仅包含 1 个频道,请将其更改为 mySoundOneChannel = mySound[0:]

至于第二期 - numUniquePointsfloat 类型,所以你必须转换它 - numUniquePoints = int(numpy.ceil((mySoundLength + 1) / 2.0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2019-09-04
    • 2021-06-22
    • 2017-10-05
    相关资源
    最近更新 更多