簡體   English   中英

python-'具有多個元素的數組的真值不明確'-什么真值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM