Функции
Вы можете определить свои собственные функции, которые выполняют определенную задачу. Вы также можете передать входные параметры своим функциям. Вы определяете функцию, используя ключевое слово def
, за которым следует имя функции и любые входные параметры, которые у вас могут быть. Если хотите, вы можете определить значения по умолчанию для ваших параметров. Функции могут возвращать значение с помощью команды return()
. Если оператор возврата отсутствует, функция неявно вернет None
. Типичный синтаксис функции выглядит следующим образом.
def function_name(parameter): """ documentation """ statement(s) return(value) def test_function(): print('test') test_function() test def iLove(food): print('I love ' + food) iLove('chocolate') I love chocolate
Вот еще одна версия вышеупомянутой функции, которая использует значение по умолчанию для своего входного параметра.
def iLove(food='junk food'): print('I love ' + food) iLove() I love junk food
Другой пример функции, которая выполняет математическую операцию на основе входного значения.
def five_times(x): return(5 * x) five_times(3) 15
Всегда полезно документировать свои функции. Документацию следует писать сразу после объявления функции. Например, предположим, что вы хотите создать функцию square
, возвращающую квадратное значение ее входного параметра.
def square(x): """ Returns the square of the input. """ return x ** 2 square(4) 16
Чтобы получить доступ к «документации» функции, вы используете ее метод __doc__
.
square.__doc__ '\n Returns the square of the input.\n '
Самоанализ объекта
Чтобы получить помощь по переменным и функциям, добавьте ?
в начале.
# the output will appear in a box at the bottom of your browser. ?print Docstring: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. Type: builtin_function_or_method ?square Signature: square(x) Docstring: Returns the square of the input. File: ~/Dropbox/ml_course_mats/Python_notebooks/<ipython-input-140-e78a16767571> Type: function
С функциями добавьте ??
в начале, чтобы увидеть исходный код, если он доступен.
??square Signature: square(x) Source: def square(x): """ Returns the square of the input. """ return x ** 2 File: ~/Dropbox/ml_course_mats/Python_notebooks/<ipython-input-140-e78a16767571> Type: function
Модули
Модуль — это просто библиотека кода. Это файл, содержащий набор функций (также известных как методы/команды) и переменных (также известных как атрибуты), которые вы можете включить в свой код. Если кто-то уже написал нужный вам модуль, вы можете просто использовать его вместо того, чтобы изобретать велосипед! Наиболее часто используемые модули в Python для анализа данных — это модули NumPy
, Pandas
, StatsModels
и Scikit-Learn
.
Вы можете увидеть список доступных переменных и функций в модуле с помощью команды dir()
.
import numpy as np dir(np)[100:110] ['array', 'array2string', 'array_equal', 'array_equiv', 'array_repr', 'array_split', 'array_str', 'asanyarray', 'asarray', 'asarray_chkfinite']
В качестве простой иллюстрации давайте создадим матрицу, используя NumPy
.
data = np.arange(12) data.reshape(3,4) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])