Чтобы распечатать повторяющиеся элементы массива в Python, различные методы, такие как использование вложенного цикла for, позволяют вручную сравнивать каждый элемент с другими для поиска дубликатов.

Функция np.unique с return_counts в NumPy эффективно идентифицирует дубликаты путем подсчета вхождений. Логическое индексирование сравнивает отсортированные элементы для поиска повторяющихся значений и коллекций. Счетчик из стандартной библиотеки Python подсчитывает элементы, чтобы легко обнаружить дубликаты.

Содержание

1. С использованием вложенного цикла for

Во вложенном методе цикла for для выявления дубликатов мы перебираем каждый элемент массива, используя внешний цикл. Для каждого элемента запускается внутренний цикл для сравнения этого элемента со всеми другими элементами массива. Когда совпадение найдено (с указанием дубликата), оно записывается.

Программа Python для печати повторяющихся элементов массива с использованием вложенного цикла for:

import numpy as np

cities = np.array(['New York', 'Chicago', 'Los Angeles', 'New York', 'Houston', 'Chicago', 'Miami'])
duplicates = set()
for i in range(len(cities)):
    for j in range(i + 1, len(cities)):
        if cities[i] == cities[j]:
            duplicates.add(cities[i])

print("Duplicate Cities:", duplicates)

Выход:

Duplicate Cities: {'New York', 'Chicago'}

После выполнения кода в редакторе Pycharm ниже отображается снимок экрана результата.

С использованием вложенного цикла for

2. Используя np.unique с return_counts

Этот метод использует функцию np.unique для поиска уникальных элементов и количества их вхождений в массиве в Python. Затем он отфильтровывает элементы со счетчиком больше единицы, идентифицируя их как дубликаты.

Программа Python для печати повторяющихся элементов массива с использованием np.unique с параметром return_counts:

import numpy as np

state_codes = np.array(['CA', 'NY', 'TX', 'FL', 'CA', 'NY', 'WA', 'TX', 'TX'])

unique_states, counts = np.unique(state_codes, return_counts=True)
duplicates = unique_states[counts > 1]
print("Duplicate State Codes:", duplicates)

Выход:

Duplicate State Codes: ['CA' 'NY' 'TX']

Результат выполнения кода в PyCharm показан на снимке экрана ниже.

Используя np.unique с return_counts

3. С использованием логического индексирования

В этом подходе массив сначала сортируется, а затем соседние элементы сравниваются с использованием логического индексирования. Это сравнение помогает идентифицировать и извлечь повторяющиеся значения, проверяя равенство последовательных элементов.

Программа Python для печати повторяющихся элементов массива с использованием логического индексирования:

import numpy as np

zip_codes = np.array([90210, 10001, 73301, 90210, 33101, 10001])
sorted_zip = np.sort(zip_codes)
duplicates_bool = sorted_zip[1:] == sorted_zip[:-1]
duplicates = np.unique(sorted_zip[:-1][duplicates_bool])
print("Duplicate ZIP Codes:", duplicates)

Выход:

Duplicate ZIP Codes: [10001 90210]

Ниже приведен снимок экрана, показывающий выходные данные, снятые после запуска кода в редакторе PyCharm.

С использованием логического индексирования

4. С использованием Collections.Counter()

Этот метод использует класс Python Counter из модуля коллекций. Он подсчитывает вхождения каждого элемента в массиве. Дубликаты затем идентифицируются как элементы со счетчиком больше единицы.

Программа Python для печати повторяющихся элементов массива с использованием функции Collections.Counter().

import numpy as np
from collections import Counter

cities = np.array(['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Chicago', 'Houston'])
city_counts = Counter(cities)
duplicates = [city for city, count in city_counts.items() if count > 1]
print("Duplicate Cities:", duplicates)

Выход:

Duplicate Cities: ['Chicago', 'Houston']

На приведенном ниже снимке экрана показан результат, полученный после запуска кода в редакторе PyCharm.

С использованием Collections.Counter()

Добавить комментарий