У меня есть массив формы (A, 2) упрощенных точек. У меня также есть полный массив (b, 2) не смягченные точки. То, что я хочу сделать, это сгруппировать точки как таковые, где показанная большая точка - упрощенная точка, а небольшие точки - полные точки. Обратите внимание, что каждая точка в упрощенном также существует в полном объеме:
Итак, я написал этот код, но я чувствую, что он может быть чрезмерно сложным:
PrettyPrint-Override ">def group_points(simple, all):
v1 = simple.view('int32,int32').squeeze()
v2 = all.view('int32,int32').squeeze()
starts = np.where(np.isin(v2, v1))[0]
ends = np.roll(starts, -1)
ends[-1] += len(all)
grouped = [
v2.take(np.arange(start, end + 1), mode='wrap').view(all.dtype).reshape(-1, 2)
for start, end in zip(starts, ends)
]
return grouped
< /code>
То, что он делает, - это найти, где случаи упрощенных точек находятся в полных точках, а затем группируют их инклюзивно, когда они обертываются. Причина этого в том, что мы хотим подключить последнюю точку обратно к первой точке. Есть лучший способ?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -inclusive
Группирование полного списка баллов с использованием упрощенных баллов, включительно? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Интеграция Sympy с коэффициентом и раскладкой (x) не дает упрощенных результатов
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Интеграция Sympy с коэффициентом и раскладкой (x) не дает упрощенных результатов
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-