np.array(song).shape [0]> 50意味着

时间:2017-05-10 09:36:40

标签: python arrays numpy

我试图理解其中一个程序及其作为输入的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)))

1 个答案:

答案 0 :(得分:0)

回答它可能很棘手....因为song.shape有一种格式......假设song.shape打印格式(n,m)的东西,它意味着变量song是一个二维数组或矩阵,有n行和m列...所以song.shape[0]将返回(n,m)的第一个参数,即行数....所以想象这首歌有n个数行和每行有m个单词... song.shape[0]表示检查歌曲是否超过50行