我试图理解其中一个程序及其作为输入的midi文件,midiToNoteStateMatrix将歌曲转换为矩阵。但我无法理解这一行:
if np.array(song).shape[0] > 50:
这条线的含义是什么?
def get_songs(path):
files = glob.glob('{}/*.mid*'.format(path))
songs = []
for f in tqdm(files):
try:
song = np.array(midi_manipulation.midiToNoteStateMatrix(f))
if np.array(song).shape[0] > 50:
songs.append(song)
except Exception as e:
raise e
return songs
songs = get_songs('Pop_Music_Midi')
print ("{} songs processed".format(len(songs)))
答案 0 :(得分:0)
回答它可能很棘手....因为song.shape有一种格式......假设song.shape
打印格式(n,m)的东西,它意味着变量song
是一个二维数组或矩阵,有n行和m列...所以song.shape[0]
将返回(n,m)的第一个参数,即行数....所以想象这首歌有n个数行和每行有m个单词... song.shape[0]
表示检查歌曲是否超过50行