An arraylist implementation for NumPy because NumPy arrays append in O(N). Also includes a time based binary search function that finds the most recent time at or before a target time in O(log(N)).