Курс 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
- Поток данных в Python
- Оболочка Python
- Библиотека sh: использование команд bash в Python
- Проверка наличия элемента в списке
- Настройка шрифта и цвета в Tkinter
- Перемещение и удаление файлов в Python
- Названия столбцов в Python таблицах
- IPython и Jupyter Notebook: руководство
- Протокол управления контекстом
- Метод join() для объединения элементов в строку.
- Декораторы в Python
- Сортировка в Python
- Получение атрибутов и методов класса
- Использование эмодзи в Python
- Python union() функция — объединение множеств
- Метод invert для побитового отрицания
- Удаление эмодзи с помощью pandas
- None в Python: использование и особенности
- Сравнение def и lambda функций в Python
- Однострочники Python
- Класс-оболочка для словарей
- Эффективная конкатенация строк в Python
- Глубокое копирование объектов
- Возврат нескольких значений из функции
- Работа с процессами в Python
- Добавление вложенных списков
- Подсчет элементов в Python
- Объединение объектов в Python
- Функции в Python
- Поиск наиболее частого элемента в списке
- Метод __iand__ для пользовательских классов
- Отправка HTTP-запросов с User-Agent
- Сортировка данных с лямбда-функциями
- Работа с парами ключ-значение
- Инверсия списка и строки
- Проверка подстроки в строке
- Метод join() для объединения строк
- Сглаживание списка
- Оператор «and» в Python
- Использование метода lower()
- Библиотека itertools: объединение списков
- Применение функции map() с лямбда-функциями
- Работа с типами данных в Python с помощью pydantic.
- Роль object и type в Python
- Реверс строки в Python
- Объединение словарей в Python
- Создание и удаление объектов
- Форматирование строк в Python
- Подписка на @SelectelNews















