В приведенном ниже коде я знаю, что он возвращает все записи, которые находятся за пределами буфера, но я запутался в механике того, как это происходит.
Я вижу, что используется "~" (иначе говоря, не по битам). Из некоторого поиска в Google я понимаю, что ~ он возвращает инверсию каждого бита на входе, который он передает, например, если бит равен 0, он возвращает 1. Верно ли это, если кто-то не может, пожалуйста, ELI5?
Может, кто-нибудь объяснит фактическую механику того, как приведенный ниже код возвращает записи, которые находятся за пределами буфера "my_union"?
ПРИМЕЧАНИЕ: больницы и столкновения - это просто гео-фреймы данных.
coverage = gpd.GeoDataFrame(geometry=hospitals.geometry).buffer(10000)
my_union = coverage.geometry.unary_union
outside_range = collisions.loc[~collisions["geometry"].apply(lambda x: my_union.contains(x))]