#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, но, насколько я понимаю (что, скорее всего, неверно), мне нужно было сначала выбрать, какой массив, а затем какое значение индекса из этого выбранного массива.