РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
527 of 541 menu

Метод copy

Метод copy класса flatiter создает независимую копию плоского итератора массива. Этот метод не принимает параметров и возвращает новый объект flatiter, который указывает на те же данные, но имеет собственное состояние позиции итерации.

Синтаксис

iterator.copy()

Пример

Создадим плоский итератор для двумерного массива и скопируем его:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) it1 = arr.flat it2 = it1.copy() print(type(it1)) print(type(it2))

Результат выполнения кода:

<class 'numpy.flatiter'> <class 'numpy.flatiter'>

Как видно из примера, оба итератора имеют один и тот же тип flatiter.

Пример

Покажем, что копия итератора независима от оригинала и имеет свою собственную позицию:

import numpy as np arr = np.array([10, 20, 30, 40, 50]) it1 = arr.flat it2 = it1.copy() print('Original index:', it1.index) print('Copy index:', it2.index) next(it1) next(it1) print('\nAfter two steps:') print('Original index:', it1.index) print('Copy index:', it2.index)

Результат выполнения кода:

Original index: 0 Copy index: 0 After two steps: Original index: 2 Copy index: 0

Этот пример демонстрирует, что продвижение оригинального итератора не влияет на копию.

Пример

Используем копию итератора для сохранения позиции, чтобы позже продолжить итерацию с того же места:

import numpy as np arr = np.array(['a', 'b', 'c', 'd', 'e']) it = arr.flat # Сохраняем копию текущего состояния saved_it = it.copy() # Проходим первые два элемента print('First pass:') print(next(it)) print(next(it)) # Восстанавливаем итератор из копии it = saved_it.copy() print('\nSecond pass from saved position:') print(next(it)) print(next(it)) print(next(it))

Результат выполнения кода:

First pass: a b Second pass from saved position: a b c

В этом примере мы сохранили состояние итератора перед началом итерации, а затем восстановили его с помощью метода copy, чтобы пройти элементы заново.

Смотрите также

  • класс flatiter,
    который представляет собой плоский итератор для многомерных массивов
  • атрибут base,
    который возвращает исходный массив, связанный с итератором
  • атрибут coords,
    который возвращает текущие координаты итератора в многомерном массиве
  • атрибут index,
    который возвращает текущий плоский индекс итератора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить