Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Копіювання масивів | Поширені функції NumPy
Основи NumPy
Секція 3. Розділ 3
single

single

Копіювання масивів

Свайпніть щоб показати меню

Часто виникає потреба створити копію масиву, щоб вносити зміни, не впливаючи на оригінальний масив.

Просте присвоєння

Спочатку розглядається, чому не можна просто створити іншу змінну за допомогою array_2 = array_1, де array_1 — це ваш оригінальний масив.

123456
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)

Ви змінили значення першого елемента array_2 на 10, але це призначення також змінило значення першого елемента array_1 на 10.

Note
Примітка

За допомогою array_2 = array_1 ви не створюєте новий масив; натомість створюється посилання на той самий масив у пам'яті. У результаті будь-які зміни, внесені до array_2, також впливають на array_1.

Візуалізація спільного посилання

Щоб вирішити цю задачу, можна було б написати array_2 = np.array([1, 2, 3]), але це означає написати один і той самий код двічі. Пам'ятайте основний принцип програмування: Не повторюйтеся.

Метод ndarray.copy()

На щастя, NumPy має метод ndarray.copy(), який вирішує цю проблему.

12345678
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')

Тепер створено новий масив для array_2 з тими ж елементами, що й у array_1.

Візуалізація копіювання масиву

Для 2D масивів процедура копіювання абсолютно така ж.

Функція numpy.copy()

Замість методу .copy() можна також використовувати функцію copy(), яка приймає масив як параметр: array_2 = np.copy(array_1).

Функція та метод працюють однаково, проте є одна особливість. Обидва мають параметр order, який визначає розташування в пам'яті масиву, але їхні значення за замовчуванням різні.

На зображенні нижче показано структуру масиву sales_data_2021, який використовується у завданні:

Дані про продажі 2021
Завдання

Проведіть, щоб почати кодувати

Ви аналізуєте квартальні дані про продажі компанії за 2021 рік. Дані зберігаються у масиві NumPy з назвою sales_data_2021, де кожен рядок представляє окремий продукт, а кожен стовпець — квартальні продажі цього продукту.

  1. Створіть копію sales_data_2021, використовуючи відповідний метод масиву NumPy, і збережіть її у sales_data_2022.
  2. Оновіть останні два елементи першого рядка (що представляє квартальні продажі продукту) у sales_data_2022 на 390 та 370:
    • Використайте додатний індекс для вказання рядка;
    • Використайте зріз лише з від’ємним значенням start для індексації останніх двох елементів.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt