Добавить в корзинуПозвонить
Найти в Дзене
ЦифроПроф

Матрицы и матричные операции

Матрица (лат. matrix, «основа») — это прямоугольная числовая таблица, или двумерный массив. Состоит из m строк и n столбцов (размер записывается так: 𝑚×𝑛). Матрицы обычно обозначаются заглавными латинскими буквами, например, А. Их элементы — строчными с двойным индексом: aij, где i — номер строки, а j — номер столбца. Создание матриц 1. Из списка строк создайте матрицу размером 2x3, в первой строке которой указаны 3, 14, 159, а во второй — числа -2, 7, 183. import numpy as np
matrix = np.array([
[3, 14, 159],
[-2, 7, 183]])
print(matrix) 2. Мобильный оператор «Шмеляйн» предоставляет клиентам ежедневные данные об обслуживании. В таблице указано, сколько СМС, минут разговора и мегабайтов потратили в понедельник пять клиентов. Преобразуйте таблицу в матрицу и выведите её на печать import numpy as np
import pandas as pd
monday_df = pd.DataFrame({'Минуты': [10, 3, 15, 27, 7],
'СМС': [2, 5, 3, 0, 1],
'Мбайты': [72, 111
Фото автора
Фото автора

Матрица (лат. matrix, «основа») — это прямоугольная числовая таблица, или двумерный массив. Состоит из m строк и n столбцов (размер записывается так: 𝑚×𝑛). Матрицы обычно обозначаются заглавными латинскими буквами, например, А. Их элементы — строчными с двойным индексом: aij, где i — номер строки, а j — номер столбца.

Создание матриц

1. Из списка строк создайте матрицу размером 2x3, в первой строке которой указаны 3, 14, 159, а во второй — числа -2, 7, 183.

import numpy as np

matrix = np.array([
[3, 14, 159],

[-2, 7, 183]])

print(matrix)

2. Мобильный оператор «Шмеляйн» предоставляет клиентам ежедневные данные об обслуживании. В таблице указано, сколько СМС, минут разговора и мегабайтов потратили в понедельник пять клиентов. Преобразуйте таблицу в матрицу и выведите её на печать

import numpy as np
import pandas as pd

monday_df = pd.DataFrame({'Минуты': [10, 3, 15, 27, 7],
'СМС': [2, 5, 3, 0, 1],
'Мбайты': [72, 111, 50, 76, 85]})

monday = monday_df.values
print(monday)

3. Из полученной матрицы выделите данные по клиенту №4 (нумерация начинается с нуля). Напечатайте результат на экране.

import numpy as np
import pandas as pd

monday_df = pd.DataFrame({'Минуты': [10, 3, 15, 27, 7],
'СМС': [2, 5, 3, 0, 1],
'Мбайты': [72, 111, 50, 76, 85]})

monday = monday_df.values

print(monday[3])

4. Из матрицы monday выделите, сколько интернет-трафика потратил каждый клиент. Напечатайте результат на экране.

import numpy as np
import pandas as pd

monday_df = pd.DataFrame({'Минуты': [10, 3, 15, 27, 7],
'СМС': [2, 5, 3, 0, 1],
'Мбайты': [72, 111, 50, 76, 85]})

monday = monday_df.values

print(monday[:, 2])

5. Мобильный оператор «Шмеляйн» собрал недельную статистику по пяти клиентам. Постройте матрицу: сколько за неделю клиенты суммарно потратили минут разговора, СМС и интернет-трафика. Напечатайте её на экране (уже в прекоде).

Постройте прогноз на месяц. По недельным данным найдите, сколько каждый клиент в среднем использует сервисы за день. Затем умножьте это среднее значение на 30 (количество дней в следующем месяце).

import numpy as np
import pandas as pd

services = ['Минуты', 'СМС', 'Мбайты']

monday = np.array([
[10, 2, 72],
[3, 5, 111],
[15, 3, 50],
[27, 0, 76],
[7, 1, 85]])

tuesday = np.array([
[33, 0, 108],
[21, 5, 70],
[15, 2, 15],
[29, 6, 34],
[2, 1, 146]])

wednesday = np.array([
[16, 0, 20],
[23, 5, 34],
[5, 0, 159],
[35, 1, 74],
[5, 0, 15]])

thursday = np.array([
[25, 1, 53],
[15, 0, 26],
[10, 0, 73],
[18, 1, 24],
[2, 2, 24]])

friday = np.array([
[32, 0, 33],
[4, 0, 135],
[2, 2, 21],
[18, 5, 56],
[27, 2, 21]])

saturday = np.array([
[28, 0, 123],
[16, 5, 165],
[10, 1, 12],
[42, 4, 80],
[18, 2, 20]])

sunday = np.array([
[30, 4, 243],
[18, 2, 23],
[12, 2, 18],
[23, 0, 65],
[34, 0, 90]])

weekly = sunday+saturday+friday+thursday+monday+wednesday+tuesday

print('В неделю')
print(pd.DataFrame(weekly, columns=services))
print()

forecast = weekly*30/7
print('Прогноз на месяц')
print(pd.DataFrame(forecast, dtype=int, columns=services))