xy = array(values, dtype=dtype) key_frames = [] prev_key_value = 0 for frame in frames: key_value = frame[3] if not key_value == prev_key_value: prev_key_value = key_value new_data = array([(frame[0], frame[1], frame[2])], dtype=dtype) xy = append(xy, new_data, 0) key_array = parse_keys(key_value, keys) key_frames.append([frame[0], key_array]) xy = sort(xy, order='time') return xy, key_frames if __name__ == '__main__': # Test select from multiple from replay_parser import ReplayParser import os import psutil import cProfile replay = ReplayParser("Cynesta_-_S3RL_feat_Mixie_Moon_-_FriendZoned_Slayeds_Insane_2020-04-21_Osu.osr") frames, times = replay.get_frames() replay.dump_frames("whitecat_frames.txt") #xy_pos, key_frames = preprocess_frames(frames, {'left': 'F', 'right': 'G', 'smoke': 'D'})