Python programming exercises
Finn Arup Nielsen DTU Compute Technical University of Denmark October 10, 2013
Python programming exercises
Installation
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Install Python
Install python and some libraries Check that you can write: $ python >>> import simplejson >>> import feedparser >>> import cherrypy >>> import pymongo >>> import nltk >>> nltk.download() >>> from nltk.corpus import brown >>> brown.words() [The, Fulton, County, Grand, Jury, said, ...]
Finn Arup Nielsen 2 October 10, 2013
Python programming exercises
Install Python
Install ipython (e.g., by pip) Start with: ipython -pylab Once installed make sure you can write: In [1]: plot(sin(linspace(0,8,100)))
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Install CGI Python
Copy CGI script from http://www.student.dtu.dk/faan/cgi-bin/helloworld to your own directory: ~/public_html/cgi-bin/ and see that it works.
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Extra task
After installing Cherrypy see that it works. Try to get the bonus-sqlobject.py from the tutorial to work. Note that this requires the installation of a SQL database. One of the line in the bonus-sqlobject.py le states: # configure your database connection here __connection__ = mysql://root:@localhost/test If you dont want to install MySQL try installing the simpler sqlite and its python support and then change the connection line.
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Extra extra installation tasks
Install spyder Get a hello world Google App Engine application up and running. Get a hello world Heroku up and running.
Finn Arup Nielsen
October 10, 2013
Python programming exercises
General Python
Finn Arup Nielsen
October 10, 2013
Python programming exercises
For loops, str and int
Write a function, ishashad that determines whether a number is a Harshad number (for number base 10). A Harshad number is an integer that is divisible by the sum of its digits (Wikipedia) Example: 81 8 + 1 = 9 81/9 = 9 Harshad! >>> ishashad(81) True Hint: convert the number to a string.
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Dictionaries
Count the number of items in a list with the result in a dictionary. List example: l = [a, b, f, f, b, b] Should give something like: c = {a: 1, b: 3, f: 2} What and where is defaultdict?
Finn Arup Nielsen
October 10, 2013
Python programming exercises
Recursion
Implement a factorial function, n!, with recursion: >>> factorial(4) 24 (4! = 1 2 3 4 = 24) See what happens with factorial(1000)
Finn Arup Nielsen
10
October 10, 2013
Python programming exercises
Classes
Construct a module with a derived dictionary class with sorted keys: >>> s = SortedKeysDict({a: 1, c: 2, b: 3, d: 4}) >>> s.keys() [a, b, c, d] >>> s.items() [(a, 1), (b, 3), (c, 2), (d, 4)] Also implement doctest for the class. Document it and extract the document with, e.g., pydoc
Finn Arup Nielsen
11
October 10, 2013
Python programming exercises
File reading and simple computing
Consider a le with the following matrix X: 1 2 3 4 Read and compute Y = 2 X Try also using the with statement in this case.
Finn Arup Nielsen
12
October 10, 2013
Python programming exercises
Project Euler
Project Euler is a website with mathematical problems that should/could be solved by computers. Go to the Web-site http://projecteuler.net/ and solve some of the problems using Python. As an example the problem number 16 can be solved in one line of Python: >>> sum(map(int, list(str(2**1000)))) 1366
Finn Arup Nielsen
13
October 10, 2013
Python programming exercises
Encoding
Finn Arup Nielsen
14
October 10, 2013
Python programming exercises
UTF-8 encoding/UNICODE
In terms of UTF-8/UNICODE what is wrong with the following code: https://raw.github.com/gist/1035399 Hint look at the word na ve. Make a correction. See also:
http://nnaarupnielsen.wordpress.com/2011/06/20/simplest-sentiment-analysis-in-pythonwith-af/
Finn Arup Nielsen
15
October 10, 2013
Python programming exercises
UTF-8 encoding/UNICODE
Translate the AFINN sentiment word list with a language translation web service, or perhaps just a part it to a language you know and see if it works with with a couple of sentences.
Finn Arup Nielsen
16
October 10, 2013
Python programming exercises
Numerical python
Finn Arup Nielsen
17
October 10, 2013
Python programming exercises
File reading and simple computing
Consider a le with the following matrix X: 1 2 3 4 Read and compute Y = 2 X now with NumPy!
Finn Arup Nielsen
18
October 10, 2013
Python programming exercises
Matrix rank
Compute the rank of the array: >>> from numpy import * >>> A = array([[1, 0], [0, 0]]) >>> rank(A) 2 Hmmmm ??? Not this one.
Finn Arup Nielsen
19
October 10, 2013
Python programming exercises Find the matrix rank by computing the number of numerical non-zero singular values Function header: def matrixrank(A, tol=None): """ Computes the matrix rank >>> matrixrank(array([[1, 0], [0, 0]])) 1 """ Hint: use the svd function in numpy.linalg.
Finn Arup Nielsen
20
October 10, 2013
Python programming exercises
Statistical distributions
Generate 10000 sets with 10 Gaussian distributed samples, square each element and sum over the 10 samples. Plot the histogram of the 10000 sums together with the teoretically curve of the probability density function. 2 10 PDF from the pdf() function in the scipy.stats.chi2 class
Finn Arup Nielsen
21
October 10, 2013
Python programming exercises
Coauthors
Read coauthors.csv a tab-separated le with co-author matrix. Find the author with most coauthoring. Plot the largest connected component part of the network with NetworkX.
Finn Arup Nielsen
22
October 10, 2013
Python programming exercises
Text mining
Finn Arup Nielsen
23
October 10, 2013
Python programming exercises
Word and sentence segmentation
Segment the following short text into sentences and words: >>> s = u"""DTU course 02820 is taught by Mr. Bartlomiej Wilkowski, Mr. Marcin Marek Szewczyk & Finn Arup Nielsen, Ph.D. Some of aspects of the course are: machine learning and web 2.0. The telephone to Finn is (+45) 4525 3921, and his email is
[email protected]. A book published by OReilly called Programming Collective Intelligence might be useful. It costs $39.99 or 285.00 kroner in Polyteknisk Boghandle. Is Text Processing in Python appropriate for the course? Perhaps! The constructor function in Python is called "__init__()". fMRI will not be a topic of the course.""" Try both with the re module as well as with a function from nltk.
Finn Arup Nielsen
24
October 10, 2013
Python programming exercises
Email mining
Change the feature set to less words or other words. Code available here: https://gist.github.com/1226214
Finn Arup Nielsen
25
October 10, 2013
Python programming exercises
Web serving
Finn Arup Nielsen
26
October 10, 2013
Python programming exercises
Estimation web service
Create a web service that will take a series of numbers and model the data, e.g., with a linear model. You can, e.g., use the below pointer for the class which makes the computation. unimodeler.py
Finn Arup Nielsen
27
October 10, 2013
Python programming exercises
Pandas
Finn Arup Nielsen
28
October 10, 2013
Python programming exercises
Assignment results in Pandas
Read in the assignment results Excel sheets (available under File Sharing in CampusNet) with Pandas into several dataframes. Aggregate the dataframe into one big dataframe. Compute the correlation between the scores in Score columns. Produce a table/matrix of scatter plots of the score results for the different.
Finn Arup Nielsen
29
October 10, 2013