[英]The truth value of an array with more than one element is ambiguous Python error
[英]python - 'the truth value of an array with more than one element is ambiguous' - what truth value?
第一篇文章! 我已經瀏覽過許多其他有關此問題的文章,但找不到適用於我的代碼的任何內容。
我正在嘗試讀取音頻文件,然后找到樣本數組x
的最大值和最小值。
wavread()
是在我導入的另一個模塊中定義的函數。
它返回fs, x
。
x
是一維數組( x.shape = (150529,)
。)
def minMaxAudio(inputFile):
(fs, x) = wavread(inputFile)
max_val = numpy.amax(x)
min_val = numpy.amin(x)
return (min_val, max_val)
當我將這些行分別輸入到ipython中時,我得到了想要的結果。 但是當我從導入的.py文件中調用此函數時,出現錯誤:
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
它突出顯示最后一行(return語句)作為錯誤的位置。
我查看過的所有其他文章在代碼中都包含某種評估或比較運算符。 我的沒有一個……是嗎?
謝謝!
您是否注意到,如果您的WAV文件具有多個聲道,比如說立體聲,則min_val和max_val本身就是數組?
這樣的代碼將觸發您遇到的錯誤:
min, max = minMaxAudio('acdc.wav')
# Assuming floats
if max > 1:
print('saturation')
而以下將起作用:
min, max = minMaxAudio('acdc.wav')
# Assuming floats
if np.any(max > 1):
print('saturation')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.