PROGRAMMING CREEPY CRAWLIES - Chris Bilder · PROGRAMMING WITH CREEPY CRAWLIES: PYTHON, ANACONDA,...

Post on 28-Sep-2018

232 views 0 download

Transcript of PROGRAMMING CREEPY CRAWLIES - Chris Bilder · PROGRAMMING WITH CREEPY CRAWLIES: PYTHON, ANACONDA,...

PROGRAMMING WITH

CREEPY CRAWLIES: PYTHON, ANACONDA, AND SPYDER

Brianna Hitt

Department of Statistics

University of Nebraska-Lincoln

April 21, 2015

Introduction

About

Downloads

Python Basics

Advanced Python

Functions

Examples

Interacting with other

languages

INTRODUCTION

ABOUT PYTHON

Named after “Monty Python’s Flying Circus”

Free and Open Source

Object-oriented

Includes:

IDLE (Python shell, GUI)

Python Command Line

Other implementations:

IronPython (running on .NET)

Jython (running on Java)

PyPy (fast, includes JIT compiler)

ABOUT ANACONDA

Re-packaged Python

Tons of packages for math and data analysis

Free from Continuum Analytics

Allows switching between Python versions

Other re-packagings:

Winpython (portable, for Windows)

Portable Python (for portable devices, add-ons)

Many more

MORE ABOUT ANACONDA

Includes:

Anaconda Command Prompt

IPython

Interactive Python shell

IPython Notebook

Web-based, single document

IPython QtConsole

Application framework

Spyder

IDE for Python, 3.8/5

Wakari

Data analytics platform

ABOUT SPYDER

Scientific Python Development EnviRonment

Rstudio for Python

Color-coded editing

Interactive testing of code

Built-in debugging

Plotting features

Uses IPython as default command line

Other IDEs:

Interactive Editor for Python (IEP)

PyDev

Enthought Canopy

WHY PYTHON?

Used by Google,

YouTube, and

Instagram

Easy to read & write

Object-oriented like R

Better than Java

Free and Open Source

Interpreted vs.

compiled slower

Rare in mobile

computing so far

Design issues

Errors appear at run

time

Use of one thread only

Indentation rather

than brackets, etc.

Pros Cons

DOWNLOADS

Download Python from

https://www.python.org/downloads/

Choose Python 3.4.3

Run the .msi file

Download Anaconda from

http://continuum.io/downloads#py34

Choose Python 3.4

Download Windows 64-Bit Python 3.4 Graphical

Installer

Run the .exe file

PYTHON BASICS

JUST PYTHON

Type commands in IDLE or the command line

Type commands after a prompt

>>>

Comments

# - start with a hashtag

PYTHON SHELL (IDLE)

Open the file hello.py

Run Run Module (F5)

>>> ================================ RESTART

================================

>>>

Hello world!

You’ve just run your first Python script!

ANACONDA

SPYDER

Text Editor

IPython Console

Object

Inspector

QUIRKS IN PYTHON 2

Cannot understand non-English characters

3/4 = 0 and 1.5 + 2 = 3

Cannot interpret numbers with leading zeros >>> 0345

SyntaxError: invalid token

>>> 0o345

229

Two different kinds of integer

10 and 10L

Print statement behaved weirdly

Most problems solved with Python 3

DATA TYPES

Numbers

Basic operations (+ - * / **)

Integer, floating point, decimal, fraction, complex

Use equal sign to create variables (case-sensitive)

Strings

Enclosed in single or double quotes

Triple quotes for strings spanning multiple lines

Combine, repeat, index, and slice

Lists

Index, slice, concatenate

Can change, remove, or add components

Can nest

PYTHON AS A CALCULATOR

Open basics.py in Spyder >>> 2.3 + 3.6

5.9

>>> 49 - 2*8

33

>>> 12 / 7

1.7142857142857142

>>> 5 ** 6

15625

>>> a = 5

>>> b = 7

>>> a * b

35

>>> a + _

40

CONTROL FLOW STATEMENTS

if, while, for loops

Body of the loop is indented

No semicolons or brackets

if

elif and else

for

Iterates over lists and strings

break, continue, and try statements for flow

CONTROL FLOW EXAMPLE

Open basic.py in Spyder >>> sum10, a = 0, 1

>>> while a <= 10:

print(a)

sum10 = sum10 + a

a = a + 1

1

<Output edited>

10

>>> sum10

55

>>> print('The value of the sum is', sum10)

The value of the sum is 55

MORE

ADVANCED

PYTHON

FUNCTIONS

Creating a function

def <function_name>(parameters):

“””String literal is enclosed by triple quotes””””

Body of the function is indented

First statement of a function is a docstring

Good practice

First line is complete sentence

Following paragraphs describe function

FUNCTIONS

Value of a function name has a type

Can be assigned to other names

methods

Function belonging to an object

obj.methodname

Can set default arguments (just like in R) def function(x, n = 20, a = ‘Hello’):

Can use keyword arguments (just like in R) function(2)

function(x = 2)

FUNCTION EXAMPLES

>>> def hello():

"""Prints 'Hello world!'\n """

print('Hello world!')

>>> hello()

Hello world!

The docstring tells us what the function does Appears in the console when using the function

FUNCTION EXAMPLES

>>> def sum2(n): #sum is a built-in function

"""Return the sum of the first n integers."""

sum_new, a = 0, 1

num_list = []

while a <= n:

num_list.append(a)

sum_new = sum_new + a

a = a + 1

return (num_list, sum_new)

>>> sum10 = sum2(10)

>>> sum10

([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 55)

MODULES

File containing functions

Module summation.py containing sum2 function

May need to change file path

See code in module.py

import statement loads the module

module_name.function_name(arguments)

>>> import summation #load the module you created

>>> from summation import * #import all names from module

MODULES

Can assign local names >>> summ = summation.sum2 #assign a local name

Can also directly import functions >>> from summation import sum2 #import names from module

dir( ) function returns names defined by a module

No argument all names currently defined

>>> dir() #lists names you have defined

>>> dir(summation) #lists names the module defines

READING & WRITING FILES

open( ) function returns a file object

Two arguments: filename and mode

Modes: ‘r’ = read, ‘w’ = write, ‘r+’ = read and

write

Default is ‘r’

Read the function using .read( ) or .readlines( )

Write to the function using .write( )

Must be strings

Make sure to close the file with .close( )

READING AND WRITING FILES EXAMPLE

Open files.py in Spyder f = open('C:\\Users\\bkallman2\\Desktop\\File.txt', 'r+')

f = open('C:\\Users\\bkallman2\\Desktop\\File.txt', 'r+')

for line in f:

print(line, end='')

This file will be used in Python.

This is the third line of this file.

This is the end of the file.

f.write('This is an additional line.\n')

READING AND WRITING FILES EXAMPLE

value = ('My favorite number is', 12)

s = str(value)

f.write(s)

Out[3]: 29

Read in the file again

This file will be used in Python.

This is the third line of this file.

This is the end of the file.This is an additional line.

('My favorite number is', 12)

f.close()

DESCRIPTIVE STATISTICS EXAMPLE

Open statistics.py in Spyder

Read in the wind_speed.csv file from HW 5

from pandas import read_csv

from pandas import read_excel

csv_data = read_csv('C:\\Users\\bkallman2\\Desktop\\STAT 992\\Assignments\\Assignment 5\\wind_speed.csv')

csv_data[:2]

Out[255]:

Year Day x

0 2004 1 9.4

1 2004 2 12.7

DESCRIPTIVE STATISTICS EXAMPLE

Create a subset and write a new .csv file

subset = csv_data[:10]

subset

subset.to_csv('C:\\Users\\bkallman2\\Desktop\\wind_speed_subset.csv')

DESCRIPTIVE STATISTICS EXAMPLE

Descriptive statistics csv_data.describe()

Out[259]:

SIMPLE LINEAR REGRESSION EXAMPLE

import scipy.stats as stats

import numpy.random as rnd

rnd.seed(1002)

x = rnd.randn(100)

y = x + rnd.randn(100)

slope, intercept, rvalue, pvalue, stderr = stats.linregress(x,y)

rsquare = rvalue**2

print(slope, rsquare, intercept, pvalue)

1.00248266595 0.487257910196 0.53739092909 6.9491397096e-16

INTERACTION WITH R

Packages:

Rpy2

PypeR

pyRserve

Rpy2 can be downloaded at

http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2

rPython package in R

Not built for R 3.1.1

Import or export data

Call Python code, functions, methods

REFERENCES

Python: https://www.python.org/

Monty Python Graphic: http://theredlist.com/wiki-2-17-1483-1492-1494-view-comedy-

romance-10-profile-monty-python-s-flying-circus.html

History: https://docs.python.org/3/license.html

Pros and Cons: http://www.infoworld.com/article/2887974/application-development/a-

developer-s-guide-to-the-pro-s-and-con-s-of-python.html

Anaconda: https://store.continuum.io/cshop/anaconda/

Spyder: https://pythonhosted.org/spyder/

IDE Reviews: http://xcorr.net/2013/04/17/evaluating-ides-for-scientific-python/

Python Tutorial: https://docs.python.org/3/tutorial/

Fast Lane to Python:

http://heather.cs.ucdavis.edu/~matloff/Python/PLN/FastLanePython.pdf

Using R with Python: https://sites.google.com/site/aslugsguidetopython/data-

analysis/pandas/calling-r-from-python

Statistics in Python:

https://www.kevinsheppard.com/images/0/09/Python_introduction.pdf