Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Зрізи | Індексування та Зрізи
Ultimate NumPy

bookЗрізи

Зрізи у Python означають отримання елементів від одного індексу до іншого в межах послідовності. У цьому розділі ми зосередимося на зрізах у масивах NumPy.

Зрізи в одномірних масивах

Загальний синтаксис для зрізів в одномірних масивах виглядає так: array[start:end:step].

  • start — індекс, з якого починається зріз;
  • end — індекс, на якому закінчується зріз (сам індекс не включається);
  • step — крок між індексами (за замовчуванням — 1).

Ось приклад для пояснення (фіолетові квадрати позначають елементи, отримані в результаті зрізу):

Note
Примітка

Оскільки ми явно не вказали step, за замовчуванням використовується значення 1.

123456789
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the element at index 2 to the element at index 4 exclusive print(array[2:4]) # Slicing from the first element to the element at index 5 exclusive print(array[:5]) # Slicing from the element at index 5 to the last element inclusive print(array[5:])
copy

Пропуск початку, кінця та кроку

Як видно, часто можна опускати start, end, step або навіть усі ці параметри одночасно. Наприклад, step можна не вказувати, якщо він дорівнює 1. start та end можна не вказувати у таких випадках:

  1. Пропуск start:
    • Вибірка від першого елемента (step додатний);
    • Вибірка від останнього елемента (step від’ємний).
  2. Пропуск end:
    • Вибірка до останнього елемента включно (step додатний);
    • Вибірка до першого елемента включно (step від’ємний).

Розглянемо ще декілька прикладів (чорна стрілка вказує, що елементи вибираються у зворотному порядку):

1234567891011
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the first element to the last element inclusive with step=2 print(array[::2]) # Slicing from the element at index 4 to the element at index 2 exclusive (step=-1) print(array[4:2:-1]) # Slicing from the last element to the first element inclusive (reversed array) print(array[::-1]) # Slicing from the first element to the last inclusive (the same as our array) print(array[:])
copy

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

Завдання

Swipe to start coding

Ви аналізуєте щоденні дані про продажі невеликого роздрібного магазину. Продажі за минулий тиждень зберігаються в масиві weekly_sales, де кожен елемент відповідає продажам за певний день.

  1. Створіть зріз масиву weekly_sales, який містить дані про продажі через день, починаючи з другого дня (вівторка).
  2. Використайте додатний індекс для start і залиште end невказаним.
  3. Збережіть результат у змінній alternate_day_sales.

Рішення

Все було зрозуміло?

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how negative steps work in slicing?

What happens if I use a step value greater than 1?

Can you show more examples of slicing with different start and end values?

close

Awesome!

Completion rate improved to 3.7

bookЗрізи

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

Зрізи у Python означають отримання елементів від одного індексу до іншого в межах послідовності. У цьому розділі ми зосередимося на зрізах у масивах NumPy.

Зрізи в одномірних масивах

Загальний синтаксис для зрізів в одномірних масивах виглядає так: array[start:end:step].

  • start — індекс, з якого починається зріз;
  • end — індекс, на якому закінчується зріз (сам індекс не включається);
  • step — крок між індексами (за замовчуванням — 1).

Ось приклад для пояснення (фіолетові квадрати позначають елементи, отримані в результаті зрізу):

Note
Примітка

Оскільки ми явно не вказали step, за замовчуванням використовується значення 1.

123456789
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the element at index 2 to the element at index 4 exclusive print(array[2:4]) # Slicing from the first element to the element at index 5 exclusive print(array[:5]) # Slicing from the element at index 5 to the last element inclusive print(array[5:])
copy

Пропуск початку, кінця та кроку

Як видно, часто можна опускати start, end, step або навіть усі ці параметри одночасно. Наприклад, step можна не вказувати, якщо він дорівнює 1. start та end можна не вказувати у таких випадках:

  1. Пропуск start:
    • Вибірка від першого елемента (step додатний);
    • Вибірка від останнього елемента (step від’ємний).
  2. Пропуск end:
    • Вибірка до останнього елемента включно (step додатний);
    • Вибірка до першого елемента включно (step від’ємний).

Розглянемо ще декілька прикладів (чорна стрілка вказує, що елементи вибираються у зворотному порядку):

1234567891011
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the first element to the last element inclusive with step=2 print(array[::2]) # Slicing from the element at index 4 to the element at index 2 exclusive (step=-1) print(array[4:2:-1]) # Slicing from the last element to the first element inclusive (reversed array) print(array[::-1]) # Slicing from the first element to the last inclusive (the same as our array) print(array[:])
copy

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

Завдання

Swipe to start coding

Ви аналізуєте щоденні дані про продажі невеликого роздрібного магазину. Продажі за минулий тиждень зберігаються в масиві weekly_sales, де кожен елемент відповідає продажам за певний день.

  1. Створіть зріз масиву weekly_sales, який містить дані про продажі через день, починаючи з другого дня (вівторка).
  2. Використайте додатний індекс для start і залиште end невказаним.
  3. Збережіть результат у змінній alternate_day_sales.

Рішення

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

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

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

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

single

some-alt