import numpy as np
# 1. Импортируйте модуль Numpy и создайте одномерный массив a, заполненный числами от 0 до 40(не включая 40)
a = np.arange(0, 40)
# 2. Выведите все четные значения массива a
even_values = a[a % 2 == 0]
print("Even values:", even_values)
# 3. Преобразуйте массив a в размерность 5x8
a = a.reshape(5, 8)
print("Reshaped array a:\n", a)
# 4. Измените в пятой строке шестой элемент массива a на значение -55
a[4, 5] = -55
print("Array a after modification:\n", a)
# 5. Вычислите среднее значение массива a
mean_value = np.mean(a)
print("Mean value of array a:", mean_value)
# 6. Выведите строку с максимальными значениями массива a
max_row = a[np.argmax(a.max(axis=1))]
print("Row with maximum values in array a:\n", max_row)
# 7. Создайте массив b размером 8x5, заполненный случайными числами от 0 до 30
b = np.random.randint(0, 30, (8, 5))
print("Array b:\n", b)
# 8. Транспонируйте массив b
b_transposed = b.T
print("Transposed array b:\n", b_transposed)
# 9. Умножьте массив b на массив a
# Для этого нужно чтобы размерности были совместимыми, так что умножим b на транспонированный массив a (8x5) * (5x8)
result = np.dot(b, a)
print("Result of multiplication of b and a:\n", result)