Skip to content

26. (П12) Створення масивів ndarray та базові операції

Передумови

Мова в коді

Усі рядкові літерали, вивід print(), імена файлів та змінних — лише латиницею. Кирилиця допускається тільки в коментарях.

Завдання

Написати скрипт ndarray_basics.py, у якому кожне завдання нижче виводить свій результат. Перед кожним завданням вивести заголовок, наприклад --- Task 3 ---.

Цикли for / while для обчислень не використовувати — лише операції над масивами.

Персоналізація

STUDENT_NAME = "Ivan Petrenko"   # ваше ім'я та прізвище транслітерацією
STUDENT_GROUP = "KI-31"          # ваша група
N = 7                            # ваш номер у списку групи + 5

Перший рядок виводу: Ivan Petrenko, KI-31, N = 7.

Завдання 1. Перший масив

Створити масив цілих чисел від 1 до N включно через np.arange. Вивести масив, його shape, size і dtype.

Завдання 2. Масиви-заготовки

Створити й вивести:

  • масив нулів формою (3, 4);
  • масив одиниць формою (2, N) цілого типу;
  • масив формою (2, 2), заповнений числом N;
  • одиничну матрицю N × N.

Завдання 3. Послідовності

  • np.linspace: N рівномірних точок від 0 до 1 включно;
  • np.arange: парні числа від 0 до 20 включно.

Завдання 4. Форма

Ті самі 12 чисел можна розкласти в таблицю по-різному: 3 рядки по 4, 4 рядки по 3 тощо. Для цього є метод reshape.

  1. Створити одновимірний масив numbers з чисел від 1 до 12 (через np.arange) і вивести його.
  2. Розкласти numbers у таблицю з 3 рядків і 4 стовпців: numbers.reshape(3, 4). Вивести таблицю та її shape.
  3. Так само розкласти в таблицю з 4 рядків і 3 стовпців.
  4. Розкласти в таблицю з 2 рядків, а кількість стовпців не вказувати — замість неї написати -1, NumPy порахує сам.

Приклад виводу для пунктів 1 і 2:

[ 1  2  3  4  5  6  7  8  9 10 11 12]
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
(3, 4)

Завдання 5. Арифметика

Арифметична операція над масивом виконується для кожного елемента одразу, без циклу: a * 2 множить на 2 кожне число масиву. Нижче aᵢ — i-й елемент масиву a.

Масив із завдання 1 збережіть у змінну a. Виведіть по черзі:

  1. a * 2 (aᵢ · 2) — кожне число, помножене на 2;
  2. a + 10 (aᵢ + 10) — до кожного числа додано 10;
  3. a ** 2 (aᵢ²) — квадрат кожного числа;
  4. a / N (aᵢ / N) — кожне число, поділене на N (зверніть увагу: результат стає дробовим);
  5. суму квадратів (a₁² + a₂² + … + aₙ², тобто Σ aᵢ²; тут n = N).

Завдання 6. Температура за тиждень

Придумайте температуру повітря за кожен із 7 днів тижня — дробові числа, наприклад 5.5, 8.0, 12.5. Створіть із них масив temps через np.array([...]).

Виведіть:

  1. мінімальну температуру — метод .min();
  2. максимальну
  3. середню
  4. номер найтеплішого дня
  5. теплі дні — Порівняти кожен елемент із N і дає масив із True (тепліше) та False (ні);
  6. кількість теплих днів — .sum() від масиву з пункту 5: кожне True рахується як 1;
  7. температуру у Фаренгейтах — формула temps * 9 / 5 + 32 застосовується до всього масиву одразу.

Приклад виводу для temps = [5.5, 8.0, 12.5, 6.0, 3.5, 9.0, 11.0] і N = 7:

3.5
12.5
7.928571428571429
2
[False  True  True False False  True  True]
4
[41.9 46.4 54.5 42.8 38.3 48.2 51.8]

Завдання 7. Осі

Для матриці (3, 4) із завдання 4 вивести суму всіх елементів, суму по стовпцях (axis=0) і суму по рядках (axis=1).


Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub