Поиск сдвигов, требуемых между двумя элементами массиваPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поиск сдвигов, требуемых между двумя элементами массива

Сообщение Anonymous »

У меня есть два массива, и я пытаюсь найти смещение для каждого элемента, чтобы они соответствовали. Пример: < /p>

Код: Выделить всё

a = np.array([1, 0, 2, 0, 0, 1, 0, 2, 0, 0, 1, 0, 2, 0, 0 ] )
b = np.array([2, 0, 0, 1, 0, 2, 0, 0, 1, 0, 2, 0, 0, 1, 0] )

# expected
c = np.array ([3, 0, 2, 1, 0, 2, 0, 2, 1, 0, 2, 0,2, 1, 0 ])

Ожидаемые результаты,
в массиве A , первый элемент - 1, а ближайшее совпадение в b - 3 шага. Второй элемент в - 0, и это совпадение в B , так что ноль уходит. Третий элемент составляет 2, а закрытие в b -b [0] , который составляет 2 шага от [2] = 2 .. и т. Д.def find_shifts_required(x, y):
assert len(x) == len(y)
result = np.zeros(len(x))
labels = np.unique(x)

for lbl in labels:
x_pos = np.where(x == lbl)
y_pos = np.where(y == lbl) #.min())
result[x_pos] = np.subtract(x_pos , y_pos )
_shifts = np.absolute(result).astype(int)
return _shifts

d = find_shifts_required(a,b)

print("expected: " , c)
print("actual: " , d)

< /code>
, который дает мне: < /p>
expected: [3 0 2 1 0 2 0 2 1 0 2 0 2 1 0]
actual: [3 0 2 1 0 3 0 2 1 0 3 0 2 1 0]
< /code>
Мне интересно, была ли эта проблема где -то решена (Scipy: я не смог найти имя) или лучшая реализация. Более проще, быстрее будет великолепно.

Подробнее здесь: https://stackoverflow.com/questions/796 ... s-elements
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Поиск сдвигов, требуемых между двумя элементами массива
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Поиск сдвигов, требуемых между двумя элементами массива
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Поиск сдвигов, требуемых между двумя элементами массива
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Алгоритм отладки, объединяющий два списка, уже отсортированных с использованием циклических сдвигов.
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Эмуляция байтовых сдвигов на 32 байтах с помощью AVX (пересечение полос движения)
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»