Python: массив индексирует все значения в первом индексе с помощью Librosa

#python #arrays #numpy #librosa

#python #массивы #numpy #librosa

Вопрос:

Я пытаюсь получить первое значение моего массива, однако, когда я пытаюсь напечатать первое значение массива bandwidth, оно показывает все значения массива в первом индексе, а не только само первое значение.

Если я попытаюсь напечатать второй индекс массива, он выдает ошибку:

 index 1 is out of bounds for axis 0 with size 1
 

Итак, напечатав первое значение с помощью приведенного ниже кода:

 import librosa
import librosa.display
import numpy as np

y, sr = librosa.load(filename)
onset_env = librosa.onset.onset_strength(y, sr=sr)
tempo = librosa.beat.tempo(onset_env, sr=sr)
sampleRate = librosa.get_samplerate(filename)
durationValue = librosa.get_duration(y, sr=sr)
duration = round(durationValue, 2)
bandwidth = librosa.feature.spectral_bandwidth(y=y, sr=sr)

print("Tempo: "   str(int(tempo)))
print("Sample Rate: "   str(int(sampleRate)))
print("Duration: "   str(duration))
print("Bandwidth: "   str(bandwidth[0]))
 

Это дает мне следующий журнал печати со всеми значениями (вместо только самого первого значения):

 Tempo: 135
Sample Rate: 44100
Duration: 58.99
Bandwidth: [1696.55727753 1607.42642476 1626.93942805 ...  585.00089368 1148.95518802
3082.65000084]
 

Ответ №1:

Я обнаружил, что проблема, с которой я столкнулся, была связана с массивом Numpy, поэтому я хотел бы указать значение индекса для второго значения, поэтому я изменил:

 print("Bandwidth: "   str(bandwidth[0]))
 

Для

 print("Bandwidth: "   str(bandwidth[0][0]))
 

которому журнал печати возвращает единственное значение:

 Tempo: 135
Sample Rate: 44100
Duration: 58.99
Bandwidth: 1626.93942804681
 

Я все еще изучаю массивы Numpy, но, насколько я понимаю (что, скорее всего, неверно), мне нужно было сначала выбрать, какой массив, а затем какое значение индекса из этого выбранного массива.