import numpy as np
import pandas as pd
Мы составили для вас несложные задачи, которые, как нам кажется, списывать было бы совсем стыдно.
Вам разрешается пользоваться любыми источниками информации (Python Docs, StackOverflow, etc.), кроме ваших коллег.
Если домашние задания будут идеально совпадать, то они могут быть аннулированы на усмотрение преподавателя.
Домашнее задание по NumPy нужно отправить на почту pddrandomshuffle@gmail.com до 23:59:59 28 апреля 2020.
Проектное домашнее задание по Pandas нужно отправить на почту pddrandomshuffle@gmail.com до 23:59:59 19 мая 2020.
Рекомендуется отправлять задания вместе, но вы можете прислать отдельно часть по NumPy, и отдельно - по Pandas.
Тема письма должна быть "Фамилия Имя - ДЗ-9".
К письму нужно прикрепить эту Jupyter-тетрадь с названием "Family_Name_hw9.ipynb" и (для части Pandas) ваш файл с датасетом с тем же названием, как вы используете в коде. Файлы должны лежать в zip-архиве в папке "Family_Name". Пример:
Alexey_Popov.zip
|-- Alexey_Popov
|-- Alexey_Popov_hw9.ipynb
|-- titanic_train.csv
|-- titanic_test.csv # не нужен, если не используется в коде
В переменной shape
указан размер массива, а в переменной filler
указано некоторое (не обязательно числовое) значение. В одну строку кода создайте массив numpy.array
размера shape
, состоящего из значений filler
. Массив поместите в переменную data
.
shape = (2, 8, 4)
filler = 19
# your code goes here
[проверка]
data
Буратино закопал золотые монеты на Поле Чудес, и решил отметить закопанные места в переменной field
типа numpy.array
. К несчастью, будучи самому себе Буратино, он записал места в одномерном массиве. Преобразуйте этот массив в массив истинности my_map
для Поля (двухмерную карту), если вы знаете, что на Поле Чудес a
грядок (рядов).
np.random.seed(777)
field = np.random.randint(0, 2, size=(42,))
a = 7
# your code goes here
[проверка]
my_map
Васе необходимо произвести матричное умножение двумерных NumPy-массивов a
и b
. К несчастью, Вася случайно изменил размер массива b
так, что он не обладает корректными размерами (и, возможно, размерностью) для выполнения умножения. Измените размер (shape
) массива b
и выполните матричное умножение за Васю; результат выведите на экран.
np.random.seed(777)
a = np.random.randint(-10, 10, (13, 28))
b = np.random.randint(-5, 5, 224)
# your code goes here
[проверка]
[[ 77 125 53 -11 -72 59 240 120]
[ 113 81 32 -221 -58 99 6 2]
[ 44 40 114 -80 16 -47 -111 192]
[ -47 97 1 43 37 157 37 2]
[-158 44 37 113 65 116 -109 -74]
[ -64 125 148 -42 -144 -62 -29 126]
[ 79 94 -27 89 -145 185 1 -133]
[-136 -106 -78 -35 14 76 -86 -193]
[ 89 36 29 109 61 -20 -90 4]
[ -65 19 -13 -16 96 244 12 -95]
[-143 100 -33 109 66 110 65 25]
[ -17 41 -73 63 179 233 104 -228]
[ 144 -28 -56 47 96 -52 147 -86]]
В вашем распоряжении массив A
- двумерный numpy.array
со абсолютными значениями экспрессии генов (штуки ридов) в различных тканях. По колонкам записаны секвенирования, по строкам - гены.
Ваша задача - для каждого секвенирования найти максимальный log10 CPM (log10 read count per million) гена при условии, что каждому риду был присвоен ровно один ген.
В ответе необходимо вывести на экран одномерный массив максимальных log10 CPM.
Указание: чтобы посчитать log10 CPM, необходимо разделить количество ридов на общее количество в секвенировании, умножить на миллион и взять от этого логарифм по основанию 10.
np.random.seed(777)
A = np.random.randint(1, 180, (100, 15))
# your code goes here
[проверка]
[4.27678423 4.33529501 4.27503026 4.31370524 4.27590935 4.29846578
4.31450987 4.32934996 4.29381164 4.28982116 4.28084022 4.29586866
4.28917056 4.31112273 4.26914307]
В университете Вова плохо учил статистику и покупает лотерейные билеты. Несмотря на это, Вова хорошо знает программирование, поэтому он записал все купленные им билеты в массив numpy.array
lottery
. В этом массиве в строках перечислены числа в билете (их всегда одинаковое количество).
Найдите на экран номера всех билетов, в которых отмечено несчастливое для Вовы число 13. Номера должны идти по возрастанию через запятую с пробелом. Нумерация билетов начинается с 1.
np.random.seed(777)
lottery = np.random.choice(90, size=(50, 30))
# your code goes here
[проверка]
1, 7, 8, 13, 26, 27, 30, 31, 32, 34, 39, 48
Творческое задание на навыки работы с библиотекой Pandas.
Что необходимо сделать:
train
и test
, вам обычно нужна только часть train
. Данные должны удовлетворять следующим условиям:test
. В этой части не указан один или несколько признаков (обычно категориальных или числовых). Попробуйте предсказать значения этого пропущенного признака по другой части датасета (train
) с помощью математической модели. Помните, что выполнение этого задания потребует больших временных затрат! Библиотека моделей для обучения называется scikit-learn
.scipy
).Пункты, помеченные астериском, необязательные. Естественно, некоторые "обязательные" пункты из этого минимума, возможно, не будут иметь смысла для ваших данных, а другие могут, наоборот, быть очень познавательными. Сделайте все, что посчитаете нужным, и если у вас получится хоть сколько-нибудь внятный анализ, то задание будет зачтено. Дополнительные баллы будут ставиться за осмысленный анализ и демонстрацию хорошего владения модулями, в том числе сторонними.
Если вы решили выполнять пункт 3.F., можете обращаться к преподавателям за советом по поводу выбора модели для ваших данных.
# your code goes here