Сортировка в Swift 2.0 Демо-ссылка , изменение синтаксиса из «sorted (myArray, {})» на «myArray.sort ({})». Расширяемый протокол.
let myArray = ["Step 6", "Step 12", "Step 10"]
let sortedArray = myArray.sort({ x, y in
return x.localizedStandardCompare(y) == NSComparisonResult.OrderedAscending
})
dump(sortedArray)
Эта функция будет возвращать datetime
в items
, которая является ближайшей к дате pivot
.
def nearest(items, pivot):
return min(items, key=lambda x: abs(x - pivot))
Хорошая часть, эта функция работает с типами, отличными от datetime
, даже если тип поддерживает сравнение, вычитание и abs
, например, числа и векторные типы.
Как ответили на этой ссылке ссылка, функция «усечь» для вас.
df.truncate(before='2012-01-07')
Или вы можете использовать get_loc с «ближайшей» опцией.
df.iloc[df.index.get_loc(datetime.datetime(2016,02,02),method='nearest')]
def nearestDate(base, dates):
nearness = { abs(base.timestamp() - date.timestamp()) : date for date in dates }
return nearness[min(nearness.keys())]
Мое решение найти ближайший индекс вместо значения
def nearest_ind(items, pivot):
time_diff = np.abs([date - pivot for date in items])
return time_diff.argmin(0)
Чтобы найти ближайшую дату и возвращают временную дельту (разницу между двумя датами), я сделал следующее:
def nearest_date(items,pivot):
nearest=min(items, key=lambda x: abs(x - pivot))
timedelta = abs(nearest - pivot)
return nearest, timedelta
Это может быть полезно, когда у вас есть минимальный порог близости для вашего приложения, как я.