Как пометить повторяющиеся записи как истинные, начиная со второго появления, используя NumPy?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как пометить повторяющиеся записи как истинные, начиная со второго появления, используя NumPy?

Сообщение Anonymous »

Проблема
У меня есть массив NumPy, и мне нужно идентифицировать повторяющиеся элементы, отмечая второе вхождение и далее как True, сохраняя при этом первое вхождение как False.
Например, для следующего массива:
np.random.seed(100)
a = np.random.randint(0, 5, 10)
# Output: [0 0 3 0 2 4 2 2 2 2]

Я хочу получить следующий результат:
[False True False True False False True True True True]

Как этого добиться, используя только функции NumPy, без использования каких-либо циклов или дополнительных библиотек?
Что вы пробовали и чего ожидали?
Мне удалось заставить его работать с помощью цикла, но я хотел решить его, используя только функции NumPy. Я пробовал реализовать np.cumsum с масками, но особого прогресса не добился.
Вот решение, которое я придумал с помощью одного цикла:
np.random.seed(100)
a = np.random.randint(0, 5, 10)
print(a)
uniques, first_indices = np.unique(a, return_index=True)
all_occurrences = np.zeros_like(a, dtype=bool)
for i in range(len(a)):
all_occurrences = np.any(a[:i] == a)

all_occurrences[first_indices] = False
print(all_occurrences)


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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