0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>31 дек 2020</li>
2
<ul><li>31 дек 2020</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Для первых шагов в науку о данных достаточно самых основ "змеиного" языка. Разбираемся, каких именно.</p>
4
</ul><p>Для первых шагов в науку о данных достаточно самых основ "змеиного" языка. Разбираемся, каких именно.</p>
5
<p> vlada_maestro / shutterstock</p>
5
<p> vlada_maestro / shutterstock</p>
6
<p>Кандидат философских наук, специалист по математическому моделированию. Пишет про Data Science, AI и программирование на Python.</p>
6
<p>Кандидат философских наук, специалист по математическому моделированию. Пишет про Data Science, AI и программирование на Python.</p>
7
<p>Python (он же пайтон, питон, питончик) - основной язык программирования в Data Science, без него просто никуда. Он несложен в изучении, имеет ясный и читаемый код. Для языка создано огромное количество дополнений-библиотек, вокруг него сформировалось многочисленное сообщество, которое не даст пропасть новичку.</p>
7
<p>Python (он же пайтон, питон, питончик) - основной язык программирования в Data Science, без него просто никуда. Он несложен в изучении, имеет ясный и читаемый код. Для языка создано огромное количество дополнений-библиотек, вокруг него сформировалось многочисленное сообщество, которое не даст пропасть новичку.</p>
8
<p>Итак, начинающему дата-сайентисту для старта достаточно знать:</p>
8
<p>Итак, начинающему дата-сайентисту для старта достаточно знать:</p>
9
<ul><li>что такое<strong>переменные, строки, списки</strong>и как с ними работать;</li>
9
<ul><li>что такое<strong>переменные, строки, списки</strong>и как с ними работать;</li>
10
<li>что такое<strong>срезы</strong>,<strong>цикл for</strong>и почему важны<strong>отступы.</strong></li>
10
<li>что такое<strong>срезы</strong>,<strong>цикл for</strong>и почему важны<strong>отступы.</strong></li>
11
</ul><p>Кажется, немного. Но этих знаний хватит, чтобы закодить несложную модель машинного обучения (например, Random Forest) для рекомендательной системы в туризме, предсказания курса доллара или прогноза цены недвижимости.</p>
11
</ul><p>Кажется, немного. Но этих знаний хватит, чтобы закодить несложную модель машинного обучения (например, Random Forest) для рекомендательной системы в туризме, предсказания курса доллара или прогноза цены недвижимости.</p>
12
<p>Питонить удобнее всего в <a>Google Colaboratory</a>. Это бесплатная веб-среда корпорации Google для вычислений и анализа данных. Чтобы получить к ней доступ, требуется лишь почта на Gmail - всё работает прямо в браузере, на компьютер ничего устанавливать не нужно.</p>
12
<p>Питонить удобнее всего в <a>Google Colaboratory</a>. Это бесплатная веб-среда корпорации Google для вычислений и анализа данных. Чтобы получить к ней доступ, требуется лишь почта на Gmail - всё работает прямо в браузере, на компьютер ничего устанавливать не нужно.</p>
13
<p>Числа (целые и дробные), строки и списки - это самые фундаментальные типы данных в Python. Первые примеры кода практически во всех руководствах связаны именно с ними.</p>
13
<p>Числа (целые и дробные), строки и списки - это самые фундаментальные типы данных в Python. Первые примеры кода практически во всех руководствах связаны именно с ними.</p>
14
<p>Для начала достаточно запомнить, что дробные числа, в отличие от целых, пишутся через точку: 23.0 - это дробное число для Python, а 23 - целое. Строки состоят из букв, символов и цифр и заключены в одинарные или двойные кавычки, а списки - это несколько элементов через запятую в квадратных скобках.</p>
14
<p>Для начала достаточно запомнить, что дробные числа, в отличие от целых, пишутся через точку: 23.0 - это дробное число для Python, а 23 - целое. Строки состоят из букв, символов и цифр и заключены в одинарные или двойные кавычки, а списки - это несколько элементов через запятую в квадратных скобках.</p>
15
<p>Традиционно начнём с вывода строки Hello, Skillbox. В ячейке своего ноутбука Colab наберите:</p>
15
<p>Традиционно начнём с вывода строки Hello, Skillbox. В ячейке своего ноутбука Colab наберите:</p>
16
<p>Затем нажмите:</p>
16
<p>Затем нажмите:</p>
17
<ul><li>либо треугольник "Запустить код" слева от ячейки;</li>
17
<ul><li>либо треугольник "Запустить код" слева от ячейки;</li>
18
<li>либо комбинацию клавиш Ctrl+Enter.</li>
18
<li>либо комбинацию клавиш Ctrl+Enter.</li>
19
</ul><p>И в том, и в другом случае код в ячейке запустится на выполнение. В нашем случае код из ячейки ноутбука говорит: "Напечатай на экране строку Hello, Skillbox". Должно получиться что-то вроде:</p>
19
</ul><p>И в том, и в другом случае код в ячейке запустится на выполнение. В нашем случае код из ячейки ноутбука говорит: "Напечатай на экране строку Hello, Skillbox". Должно получиться что-то вроде:</p>
20
<p>В ноутбуках два основных вида ячеек: "код" и текст". Ту, что с кодом, мы только что запустили. Ячейки текстового типа нужны для пояснений, создания заголовков или оглавлений ноутбуков. В ячейках используется так называемая маркдаун-разметка: здесь<a>подробная шпаргалка</a>по ней.</p>
20
<p>В ноутбуках два основных вида ячеек: "код" и текст". Ту, что с кодом, мы только что запустили. Ячейки текстового типа нужны для пояснений, создания заголовков или оглавлений ноутбуков. В ячейках используется так называемая маркдаун-разметка: здесь<a>подробная шпаргалка</a>по ней.</p>
21
<p>Потренируйтесь: самостоятельно создайте и удалите ячейки с кодом и текстом. Попробуйте использовать кодовые ячейки как калькулятор - наберите выражение, например, 2 + 2, 3 * 5 (звёздочка означает умножение) или 5 / 20, и запустите ячейку на выполнение. И, наконец, переименуйте ноутбук из Untitled0.ipynb в The_Greatest_DS_Project_Ever.ipynb или что-нибудь поскромнее.</p>
21
<p>Потренируйтесь: самостоятельно создайте и удалите ячейки с кодом и текстом. Попробуйте использовать кодовые ячейки как калькулятор - наберите выражение, например, 2 + 2, 3 * 5 (звёздочка означает умножение) или 5 / 20, и запустите ячейку на выполнение. И, наконец, переименуйте ноутбук из Untitled0.ipynb в The_Greatest_DS_Project_Ever.ipynb или что-нибудь поскромнее.</p>
22
<p>Переменные в Python - это именованные сущности, в которые мы, как в коробочку с надписью, кладём какие-то значения или данные. Значения переменным задаются с помощью оператора присваивания: =.</p>
22
<p>Переменные в Python - это именованные сущности, в которые мы, как в коробочку с надписью, кладём какие-то значения или данные. Значения переменным задаются с помощью оператора присваивания: =.</p>
23
а_chislo = 20 print(a_chislo)<p>Этот код, запущенный в ячейке, сначала присвоит переменной а_chislo значение 20, затем выдаст его нам с помощью функции print ().</p>
23
а_chislo = 20 print(a_chislo)<p>Этот код, запущенный в ячейке, сначала присвоит переменной а_chislo значение 20, затем выдаст его нам с помощью функции print ().</p>
24
<p>Старайтесь использовать осмысленные, говорящие названия переменных. Эта привычка сбережёт вам дни и недели, если не месяцы жизни - без преувеличения. Используйте маленькие латинские буквы, символ подчёркивания и цифры.</p>
24
<p>Старайтесь использовать осмысленные, говорящие названия переменных. Эта привычка сбережёт вам дни и недели, если не месяцы жизни - без преувеличения. Используйте маленькие латинские буквы, символ подчёркивания и цифры.</p>
25
<p>В переменные можно класть и строки:</p>
25
<p>В переменные можно класть и строки:</p>
26
b_string = "Data Science" print(b_string)<p>Можно сочетать переменные прямо внутри скобок функции print через запятую:</p>
26
b_string = "Data Science" print(b_string)<p>Можно сочетать переменные прямо внутри скобок функции print через запятую:</p>
27
print("Я изучаю", b_string, "уже", a_chislo, "минут")<p>Python понимает и одинарные, и двойные кавычки. Главное правило: не закрывать одинарные кавычки двойными, и наоборот. Двойные кавычки закрывают двойные, одинарные - одинарные. Машины, порядок, красота!</p>
27
print("Я изучаю", b_string, "уже", a_chislo, "минут")<p>Python понимает и одинарные, и двойные кавычки. Главное правило: не закрывать одинарные кавычки двойными, и наоборот. Двойные кавычки закрывают двойные, одинарные - одинарные. Машины, порядок, красота!</p>
28
<p>Более продвинутый способ вывода использует форматированные строки, или f-strings:</p>
28
<p>Более продвинутый способ вывода использует форматированные строки, или f-strings:</p>
29
print(f"Я изучаю {b_string} уже {a_chislo + 5} минут")<p>В скобках прямо перед кавычками ставится f, и Python понимает, что строка будет форматированной. Внутрь основной строки с помощью фигурных скобок можно вставлять переменные и целые выражения из них.</p>
29
print(f"Я изучаю {b_string} уже {a_chislo + 5} минут")<p>В скобках прямо перед кавычками ставится f, и Python понимает, что строка будет форматированной. Внутрь основной строки с помощью фигурных скобок можно вставлять переменные и целые выражения из них.</p>
30
<p>Кстати, если переносите код в ячейку прямо из текста этой статьи копипастом (а кто из нас без греха), то Python может выдать ошибку. Причина - кавычки и другие специальные символы. Они могут быть немного другими, в зависимости от настроек шрифта в вашем браузере. Надёжнее всего перепечатать код вручную.</p>
30
<p>Кстати, если переносите код в ячейку прямо из текста этой статьи копипастом (а кто из нас без греха), то Python может выдать ошибку. Причина - кавычки и другие специальные символы. Они могут быть немного другими, в зависимости от настроек шрифта в вашем браузере. Надёжнее всего перепечатать код вручную.</p>
31
<p>F-строки удобны тем, что не надо постоянно лезть внутрь скобок функции print (), чтобы изменить вывод: достаточно изменить переменную.</p>
31
<p>F-строки удобны тем, что не надо постоянно лезть внутрь скобок функции print (), чтобы изменить вывод: достаточно изменить переменную.</p>
32
<p>Изменим значение переменной b_string:</p>
32
<p>Изменим значение переменной b_string:</p>
33
b_string = "Machine Learning" print(f"Я изучаю {b_string} уже {a_chislo + 5} минут").<p><strong>Список</strong><em></em>- это структура данных в Python, состоящая из произвольных элементов, перечисленных через запятую. Элементы списка заключаются в квадратные скобки.</p>
33
b_string = "Machine Learning" print(f"Я изучаю {b_string} уже {a_chislo + 5} минут").<p><strong>Список</strong><em></em>- это структура данных в Python, состоящая из произвольных элементов, перечисленных через запятую. Элементы списка заключаются в квадратные скобки.</p>
34
<p>Например:</p>
34
<p>Например:</p>
35
freddy_list = [1, 2, "Фредди заберёт тебя", [3, 4, "Запирайте дверь в квартире"]]<p>Обратите внимание, что последним элементом в списке freddy_list является другой список, а именно [3, 4, "Запирайте дверь в квартире"]. В списках могут содержаться и числа, и строки, и, как видим, другие списки.</p>
35
freddy_list = [1, 2, "Фредди заберёт тебя", [3, 4, "Запирайте дверь в квартире"]]<p>Обратите внимание, что последним элементом в списке freddy_list является другой список, а именно [3, 4, "Запирайте дверь в квартире"]. В списках могут содержаться и числа, и строки, и, как видим, другие списки.</p>
36
<p>Давайте создадим список income_list, содержащий в себе поступления и расходы:</p>
36
<p>Давайте создадим список income_list, содержащий в себе поступления и расходы:</p>
37
income_list = [2000, 1000, 500, 8000, -45] print(income_list) # выведет список<p>Слова "выведет список" в примере - это<strong>строчный</strong><strong>комментарий</strong>. Такие комментарии в Python используют для пояснения к командам. Они отделяются от исполняемого кода с помощью двух пробелов, знака решётки # и ещё одного пробела. Уместные комментарии - это хорошо.</p>
37
income_list = [2000, 1000, 500, 8000, -45] print(income_list) # выведет список<p>Слова "выведет список" в примере - это<strong>строчный</strong><strong>комментарий</strong>. Такие комментарии в Python используют для пояснения к командам. Они отделяются от исполняемого кода с помощью двух пробелов, знака решётки # и ещё одного пробела. Уместные комментарии - это хорошо.</p>
38
<p>В одной переменной income_list теперь содержится целый список из чисел.</p>
38
<p>В одной переменной income_list теперь содержится целый список из чисел.</p>
39
<p>Что с ним можно сделать:</p>
39
<p>Что с ним можно сделать:</p>
40
sum(income_list) # посчитает сумму всех элементов списка len(income_list) # посчитает длину списка, т.е. количество элементов в нём; len - от слова length, "длина".<p>Запускайте каждую команду в новой ячейке, иначе некоторые результаты не выведутся - это особенность работы в ноутбуках. Также можем подсчитать среднее значение - сумму элементов списка поделим на их количество:</p>
40
sum(income_list) # посчитает сумму всех элементов списка len(income_list) # посчитает длину списка, т.е. количество элементов в нём; len - от слова length, "длина".<p>Запускайте каждую команду в новой ячейке, иначе некоторые результаты не выведутся - это особенность работы в ноутбуках. Также можем подсчитать среднее значение - сумму элементов списка поделим на их количество:</p>
41
sum(income_list) / len(income_list)<p>Циклы позволяют организовать код более компактно, а отступы улучшают его структуру и повышают читаемость. Срезы предназначены для корректного выделения определённого диапазона значений: это одна из наиболее частых операций над данными.</p>
41
sum(income_list) / len(income_list)<p>Циклы позволяют организовать код более компактно, а отступы улучшают его структуру и повышают читаемость. Срезы предназначены для корректного выделения определённого диапазона значений: это одна из наиболее частых операций над данными.</p>
42
<p>Чтобы сделать какую-то операцию нужное количество раз, в Python используют циклы: во-первых, это красиво, во-вторых, это правильно. Например, чтобы вывести фразу "Я изучаю Data Science" пять раз, можно написать такой код:</p>
42
<p>Чтобы сделать какую-то операцию нужное количество раз, в Python используют циклы: во-первых, это красиво, во-вторых, это правильно. Например, чтобы вывести фразу "Я изучаю Data Science" пять раз, можно написать такой код:</p>
43
<p>Без цикла (неправильно):</p>
43
<p>Без цикла (неправильно):</p>
44
print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science")<p>С циклом (правильно):</p>
44
print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science") print("Я изучаю Data Science")<p>С циклом (правильно):</p>
45
for i in range(0, 5): print("Я изучаю Data Science")<p>В первой строке правильного кода мы говорим: для всех i (эта переменная называется<strong>итератор</strong><em> -</em>"перечислитель") в промежутке range от 0 до 5 сделай следующее - и ставим двоеточие. И Python, последовательно перебирая целые значения итератора i от 0 до 5, раз за разом выполняет команду после двоеточия. Это тело цикла, которое печатает нужную фразу.</p>
45
for i in range(0, 5): print("Я изучаю Data Science")<p>В первой строке правильного кода мы говорим: для всех i (эта переменная называется<strong>итератор</strong><em> -</em>"перечислитель") в промежутке range от 0 до 5 сделай следующее - и ставим двоеточие. И Python, последовательно перебирая целые значения итератора i от 0 до 5, раз за разом выполняет команду после двоеточия. Это тело цикла, которое печатает нужную фразу.</p>
46
<p>Обратите внимание на отступ перед командой print () в примере кода с циклом. Отступы очень важны: именно с их помощью Python понимает, что эта команда принадлежит циклу, а не стоит сама по себе. Если интерпретатор Python не увидит отступа там, где он должен, по его мнению, быть, то выдаст ошибку типа Indentation Error (ошибка отступа).</p>
46
<p>Обратите внимание на отступ перед командой print () в примере кода с циклом. Отступы очень важны: именно с их помощью Python понимает, что эта команда принадлежит циклу, а не стоит сама по себе. Если интерпретатор Python не увидит отступа там, где он должен, по его мнению, быть, то выдаст ошибку типа Indentation Error (ошибка отступа).</p>
47
<p>Colab, как и другие современные редакторы кода, сам поставит отступ, когда вы нажмёте Enter после двоеточия. Чтобы начать писать команду, уже не относящуюся к циклу, надо вернуться в начало строки с помощью клавиши Backspace.</p>
47
<p>Colab, как и другие современные редакторы кода, сам поставит отступ, когда вы нажмёте Enter после двоеточия. Чтобы начать писать команду, уже не относящуюся к циклу, надо вернуться в начало строки с помощью клавиши Backspace.</p>
48
<p>Запустим простой цикл:</p>
48
<p>Запустим простой цикл:</p>
49
for i in range(5): print(i)<p>В первой строке мы снова указываем итератору бежать от 0 до 5; сам ноль при этом не указываем, Python его поставит по умолчанию. Во второй строке печатаем значение самого итератора i. Что же мы видим:</p>
49
for i in range(5): print(i)<p>В первой строке мы снова указываем итератору бежать от 0 до 5; сам ноль при этом не указываем, Python его поставит по умолчанию. Во второй строке печатаем значение самого итератора i. Что же мы видим:</p>
50
<p>Стоп-стоп, а где же 5? Там же в скобках ясно написано число!</p>
50
<p>Стоп-стоп, а где же 5? Там же в скобках ясно написано число!</p>
51
<p>Если коротко, то при указании начального и конечного значения какого-либо промежутка в Python подразумевается, что начальное значение в него входит, а конечное нет.</p>
51
<p>Если коротко, то при указании начального и конечного значения какого-либо промежутка в Python подразумевается, что начальное значение в него входит, а конечное нет.</p>
52
<p>Проще всего это объяснить рисунком:</p>
52
<p>Проще всего это объяснить рисунком:</p>
53
<p>Сначала идёт срез (чёрные пунктирные линии на рисунке) с индексом, и только затем сам элемент (серый квадратик) с этим же индексом. Поскольку срез идёт впереди элемента, то элемент, отрезанный по индексу, не попадает в промежуток.</p>
53
<p>Сначала идёт срез (чёрные пунктирные линии на рисунке) с индексом, и только затем сам элемент (серый квадратик) с этим же индексом. Поскольку срез идёт впереди элемента, то элемент, отрезанный по индексу, не попадает в промежуток.</p>
54
<p>Тем более что элемент с индексом 5 по факту шестой - посчитайте. В программировании и data science отсчёт всегда начинается не с единицы, а с нуля.</p>
54
<p>Тем более что элемент с индексом 5 по факту шестой - посчитайте. В программировании и data science отсчёт всегда начинается не с единицы, а с нуля.</p>
55
<p>Для списков и даже для строк действует аналогичное правило.</p>
55
<p>Для списков и даже для строк действует аналогичное правило.</p>
56
# переменная-список: list_a = ['элемент_a', 'элемент b', 'c', 18, 12, 45] # элементы списка с индексами с 2-го по 4-й, исключая 4-й: list_a[2:4] # переменная-строка: string_b = 'Я изучаю Machine Learning' # символы строки с 7-го по 14-й, исключая 14-й: string_b[7:14]<p>Такая конструкция (для строк, списков и некоторых других типов данных) в Python так и называется: срез<em>(</em>slice<em>)</em>. Его внешнее отличие от range () в том, что границы среза пишутся через двоеточие и в квадратных скобках.</p>
56
# переменная-список: list_a = ['элемент_a', 'элемент b', 'c', 18, 12, 45] # элементы списка с индексами с 2-го по 4-й, исключая 4-й: list_a[2:4] # переменная-строка: string_b = 'Я изучаю Machine Learning' # символы строки с 7-го по 14-й, исключая 14-й: string_b[7:14]<p>Такая конструкция (для строк, списков и некоторых других типов данных) в Python так и называется: срез<em>(</em>slice<em>)</em>. Его внешнее отличие от range () в том, что границы среза пишутся через двоеточие и в квадратных скобках.</p>
57
<p>Конечно, это только начало: в следующих статьях покажем, как применить эти знания. Самые нетерпеливые могут посмотреть интенсивы по Python и Data Science на нашем<a>YouTube-канале</a>. Сделать чат-бота с ИИ, предсказать курс доллара, рекомендовать туристу город для поездки - всё возможно!</p>
57
<p>Конечно, это только начало: в следующих статьях покажем, как применить эти знания. Самые нетерпеливые могут посмотреть интенсивы по Python и Data Science на нашем<a>YouTube-канале</a>. Сделать чат-бота с ИИ, предсказать курс доллара, рекомендовать туристу город для поездки - всё возможно!</p>
58
<p>На курсах "<a>Профессии Data Scientist</a>" Python посвящены несколько модулей. Там вы ещё ближе познакомитесь с этим языком программирования и с его возможностями в области анализа данных.</p>
58
<p>На курсах "<a>Профессии Data Scientist</a>" Python посвящены несколько модулей. Там вы ещё ближе познакомитесь с этим языком программирования и с его возможностями в области анализа данных.</p>
59
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
59
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>