F.A.Q. Как использовать Python?



1. Как создать программу?

Программа в Python создается любым редактором в файле с расширением py. Сама рабочая среда R устроена как командная строка, но удобнее писать целые программы в файле, а потом запускать их в командную строку.

 

2. Как запустить программу?

Зависит от вашей среды или оболочки.

 

3. Как пользоваться переменными?

Присваивание осуществляется операцией =. Объявления переменной перед этим в общем не требуется.

 

4. Как вывести на экран информацию?

Информация выведется в консоль. Два наиболее простых вариант таковы:

а) Для вывода значения переменной Temp просто написать отдельной строкой Temp. R увидит, что вы не используете присваивания и распознает, что вам хочется увидеть содержимое переменной Temp. Аналогичным образом можно производить операции и смотреть на результат, например 2*sin(Temp) + Temp1 подсчитает вам соответствующее выражение и выдаст в консоль.

б) Использовать print(). Если аргументов print будет переменная, например, print(Temp), то вы увидите ее значение, а если строка, то в консоли просто появится соответствующий текст, например, print("Temp") выдаст слово Temp.

 

5. Какие есть классы переменных?

Основные классы переменных в Python описаны здесь: https://pythonworld.ru/tipy-dannyx-v-python

 

6. Как работать с векторами?

Удобный формат работы с векторами создает библиотека numpy. Сперва ее нужно импортировать

import numpy as np

Здесь num – это просто наше обозначение для библиотеки.

Или же можно записать from numpy import * и импортировать все функции и переменные в наше пространство. В первом случае мы будем вызывать функции в форме np.function(), во втором просто function().

 

Массив в numpy задается в формате a=array(список компонентов, тип данных)
Скажем, a=array([1,2,3]) создаст массив, содержащий 1, 2 и 3.
Можно создать вектор с помощью tile(p, n) – это заполнит вектор длины n числом p.
Можно создавать прогрессии с помощью arange. В нашем случае np.arange(1,10,2) создаст вектор (1,3,5,7,9). Здесь первый аргумент — это стартовая позиция, второй — верхняя граница (недостижимая), а третий — шаг изменения переменной.
Обращаться к элементам вектора можно в формате a[1] (стоит помнить, что нумерация идет с нулевого элемента).

Несколько элементов вектора выводятся в формате a[1:3].

Аналогичным образом можно вывести элементы вектора с каким-то шагом c помощью записи a[m:n:k] – в этом случае будут выведены все элементы с m по n с шагом k.

 

7. Как считать функции от векторов?

Если вы примените к вектору функцию от вектора (например, sum), то он выдаст вам ее результат. Если вы примените к вектору числовую функцию (например, ** – возведение

 в степень), то он выдаст вам вектор из степеней координат вектора. Например, np.array([1,2,3])**2+2 это вектор (3,6,11). В том числе x+y для векторов их покомпонентно сложит, x*y — покомпонентно умножит и так далее.

Можно брать покомпонентный максимум с помощью maximum или покомпонентного сравнения x>y.

Отметим, что логические операции (скажем, x>3) выдают нам вектор из True и False. В свою очередь подстановка вектора из True и False в качестве аргумента вектора выдадут те компоненты x, возле которых стоит True. Таким образом, x[x>3] оставит те компоненты x, которые больше 3.

 

8. Хорошо, а что с матрицами?

В роли матрицы можно использовать array в пакете numpy. При этом синтаксис выглядит таким образом: np.array([[1,2,3],[4,5,6]]). Это создаст матрицу с указанными строками.
Единичная матрица создается np.identity(n), где n — ее размер.
Можно создать матрицу с помощью np.tile(p,(m,n)) – это заполнит матрицу m на n числом p.

Зачастую удобнее создавать матрицу из вектора.

Это можно делать с помощью a.reshape(m,n) (делает из вектора или матрицы матрицу m на n, если размеры соответствуют).

Есть также команда matrix, которая делает из array объект matrix.
Матрицу matr можно перевести в array с помощью matr.A

 

9. А как работать с матрицами?

Если Matr — двумерный массив, то обращение, скажем, к элементу 1,2 (с учетом нумерации начиная с нуля) осуществляется командой Matr[1,2]. Matr[2:5, 3:4] выделит подматрицу 3 на 1 из строк 2, 3, 4 и столбца 3. Matr[1:2,] — выделит первую строку. С двумерными массивами можно делать то же, что с векторами — например, складывать, считать от них функции и так далее, при этом операции будут осуществляться поэлементно.

Если написать умножение матриц Matr1*Matr2, то это также будет поэлементное умножение. Для обычного матричного умножения нужно записать np.dot(Matr1,Matr2).

np.transpose() задает транспонирование.

Можно достаточно быстро осуществлять операции со столбцами или строками матрицы с помощью reduce. Например, add.reduce(a,0) переведет двумерный массив в одномерный, состоящий из сумм по столбцам (то, что операция осуществляется со столбцами задается числом 0 — номер оси, по которой ведется операция).
Вместо add можно использовать subtract, multiply, divide, bitwise_or, bitwise_xor, bitwise_and, remainder.

Также можно использовать, например, функции max и min в формета a.max(1), заменяющая двумерный массив на вектор из максимумов по строкам.

Для обычной матричной алгебре выгодно использовать тип matrix. Так произведение объектов matrix будет произведением матриц в обычном смысле, а a**(-1) даст нам обратную матрицу к матрице а.

 

10. Как склеивать векторы или матрицы?

Векторы или матрицы можно склеивать np.hstack(a,b) построчно или np.vstack(a,b) по столбцам.

 

11. Что такое Series и DataFrame?

Это объекты библиотеки pandas, которую нужно предварительно импортировать:
import pandas as pd
Series – это вектор, в котором переменные имеют имена.
Например, Ser = pd.Series([5, 6, 7, 8, 9, 10], index=['a', 'b', 'c', 'd', 'e', 'f']) создает вектор, элементы которого можно вызывать по индексу, скажем Ser['b'] выдаст нам 6.

Можно делать выборку по нескольким индексам, скажем, Ser[['b','d','f']]

Можно менять индексы с помощью переприсваивания Ser.index

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

DF = pd.DataFrame({'Students': ['Ivanov', 'Petrov', 'Shklyaev'], AverageBall: [5.0, 4.5, 2.0], 'Result': ['Passed', 'Passed','Not Passed']})

Строчки DataFrame при этом также индексируются, обратиться к индексам можно через DF.index, а вызвать строку по индексу с помощью DF.loc['Index']

Обращаться к столбцу можно, например, DF.Students или DF['Students']. Вторым образом можно обращаться и к еще не существующему столбцу, присвоив туда значения, которые мы хотим добавить.

 

12. Можно ли делать списки из объектов разного типа и разной структры?

Есть так называемый список — list. Создать его можно, например, задав явно элементы: X=[3,4,5]. Обращаться к элементам можно в формате X[2] (нумерация при этом начинается с нуля). Здесь элементы могут быть какими угодно.

 

13. Как в Python устроены циклы и условия?

Довольно похоже на другие языки. Условие задается if, else

if x==y:

 

else:

 

Вместо begin и end используются отступы.

Цикл for задается в формате

for x in list:

 

Опять же одинаковый отступ задает окончание цикла. Например,

for i in range(1,5):

       print("Hello!")

 напишет слово Hello! 4 раза (i пробежит 1,2,3,4).

 

Аналогично работает while

 

14. А как задавать функции?

С помощью команды def. Скажем,

def f(x,y,z):

       w=x+y+z

       return w**2

 

создаст функцию f, которая трем числам/векторам/матрицам будет сопоставлять квадрат их суммы. При этом никаких указаний типов не требуется, функции сработает для любых x,y,z, для которых определены операции внутри. Для вызова функции достаточно просто задать f(x,y,z).

 

15. Как строить графики?

Использовать удобнее всего matplotlib.pyplot: import matplotlib.pyplot as plt

Гистограмма массива array с разбиенинем на columns колонок — plt.hist(array,colums)

Двумерный точечный график (scatterplot) из точек x,y – plt.plot(x,y)

 

16. Как получить случайные величины?

За это ответственна библиотека random: import random as rnd

Внутри нее есть различные генераторы: rnd.gauss, rnd.random, rnd.expovariate и так далее.

Отметим также rnd.sample(array,number), выбирающее number случайных элементов из набора sample

17. Что насчет описательной статистики?

В numpy есть стандартные функции mean, median, sd и другие статистические операторы. Получить краткое описание можно через .describe, например, cars.speed.describe выдаст статистику по столбцу speed массива cars

 

18. Как работать с файлами?
Для текстовых файлов это
.tofile(<имя файла>,sep=<разделитель>)

fromfile(<имя файла>,<тип>=float,sep=<разделитель>)
Разделитель — это, например, ; – то, чем разделяет

19. А на каких данных опробовать себя?
Есть библиотека pydataset, содержащая достаточный набор данных.
Установив ее с помощью pip install pydataset в установщике и загрузив ее в свой код через from pydataset import data вы сможете посмотреть какие там есть массивы данных и вызвать какой-нибудь из них. Например, data(Titanic) выдаст вам базу данных о пассажирах Титаника.

 

Упражнения

Обратите внимание, что в разделе материалов практикума есть несколько готовых скриптов с подробными комментариями, чтобы вам было проще разобраться со структурой языков.

1. Написать "Hello, World!"

2. Загрузить базу данных cars из библиотеки dataset. Какую структуру имеет эта база данных? Построить график зависимости переменных из базы. Выделить автомобили со скоростью не более 15. Какие средние значения имеют переменные? Какие среднее и дисперсия у отношения переменных?

3. Создать функцию композиции двух перестановок длины 20. Проверить для двух случайных перестановок, являются ли они коммутирующими. Визуально убедиться, что ваш алгоритм создания случайной перестановки равновероятно выбирает возможные значения для первого элемента перестановки.

4. Сгенерировать нормальную выборку с параметрами 1 и 1 размера 500. Найти ее выборочные среднее и дисперсию. Найти интервал, в который должны попасть 95% наблюдений и выдать все наблюдения, которые в него не попали. Построить гистограмму с разбиением на 20 отрезков.

 


Дата добавления: 2019-03-09; просмотров: 242; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!