Курс Python → Работа с массивами в Numpy
Библиотека Numpy предоставляет возможность работать с массивами данных, и при этом важно понимать разницу между копиями и представлениями. Когда мы присваиваем массив переменной, мы передаем не сам массив, а ссылку на него. Это означает, что изменения в новой переменной могут повлиять на исходный массив. Такая же ситуация возникает и при работе с массивами в Numpy.
Чтобы избежать нежелательных изменений в исходных данных, в Numpy существует два подхода: представление и глубокое копирование. Представление — это поверхностное копирование, которое позволяет изменять форму массива без изменения данных. Однако, при изменении данных в представлении, данные в исходном массиве также изменятся. Представление можно получить, например, через срез массива.
Глубокое копирование, в свою очередь, создает полностью новый объект, который не связан с исходным массивом. Новый массив хранится в отдельной ячейке памяти и изменения в нем не затронут исходный массив. Этот подход подходит в случаях, когда требуется полная независимость нового массива от исходного.
# Примеры кода на Python с использованием Numpy
import numpy as np
# Создание исходного массива
arr = np.array([1, 2, 3, 4, 5])
# Представление массива через срез
view_arr = arr[1:4]
# Изменение данных в представлении
view_arr[0] = 10
# Вывод измененного представления и исходного массива
print("Измененное представление:", view_arr)
print("Исходный массив:", arr)
# Глубокое копирование массива
deep_copy_arr = arr.copy()
# Изменение данных в глубокой копии
deep_copy_arr[0] = 100
# Вывод измененной глубокой копии и исходного массива
print("Измененная глубокая копия:", deep_copy_arr)
print("Исходный массив:", arr)
В данном примере мы создаем массив с помощью Numpy, затем создаем представление массива через срез и изменяем данные в этом представлении. После этого мы создаем глубокую копию массива и также изменяем данные в ней. Вывод на экран показывает, что изменения в представлении влияют на исходный массив, в то время как изменения в глубокой копии не затрагивают исходный массив.
Другие уроки курса "Python"
- Генерация случайных чисел Python
- Контроль точности вывода чисел
- Основные методы NumPy
- Работа с YAML в Python
- Многострочные комментарии в Python
- Дефолтные параметры в Python
- Colorama: окрашивание текста в Python
- Оператор assert в Python
- Разработка Telegram-ботов
- Использование обратной косой черты в f-строках
- Моржовый оператор в Python 3.8
- Progress с библиотекой tqdm
- Группы исключений в Python
- Циклы for в Python
- История Python
- Поиск уникальных и повторяющихся элементов
- Операции с массивами в NumPy
- Генератор надежных паролей
- Пространство имен в Python
- Комментарии в Python
- Преобразование генераторов в циклы
- *args и **kwargs в Python
- Введение в PyTorch
- Вычисление натурального логарифма в NumPy
- Работа с итераторами в Python
- Обработка StopIteration в Python
- Проверка элемента в множестве.
- Преобразование в float
- Оператор continue в Python
- Регулярные выражения: метод match
- Автоматизация скриптов на AWS Lightsail.
- Обмен значений переменных в Python
- Просмотр файла в Jupyter Noteboo
- Работа с комплексными числами в Python
- Быстрый поиск кода
- Метод classmethod
- Оператор «not» в Python
- Генераторы по генератору
- Создание вкладок с TKinter
- Установка и использование Virtualenv
- Python: Фильтрация списков с помощью filter()
- Перебор элементов списка в Python
- Генерация QR-кодов с Python
- Экспорт данных с помощью writefile
- Автоматизация с Python
- Сортировка HTML-элементов















