I719 Fundamentals of Python/lecture6: Difference between revisions
add lecture 6 |
No edit summary |
||
Line 34: | Line 34: | ||
call it with <code>range(0, 30)</code> | call it with <code>range(0, 30)</code> | ||
= Slicing = | == Slicing == | ||
<source lang="python">In [1]: a = "Hello World" | <source lang="python">In [1]: a = "Hello World" | ||
Line 66: | Line 66: | ||
my_sort_function(my_list) | my_sort_function(my_list) | ||
[10, 11, 177, 9, 199]</source> | [10, 11, 177, 9, 199]</source> | ||
= Interlude: Packages and Requirements = | |||
python application often include a <code>requirements.txt</code> that lists pip dependencies | python application often include a <code>requirements.txt</code> that lists pip dependencies | ||
Line 79: | Line 79: | ||
see: https://github.com/pypa/sampleproject/blob/master/setup.py | see: https://github.com/pypa/sampleproject/blob/master/setup.py | ||
= | = Numpy = | ||
* it is faster | * it is faster |
Revision as of 00:13, 9 March 2017
Lists and Arrays
TASK 1
Write a function that makes all characters in a list uppercase!
call it with the following list, and print the result
['cat', 'dog']
TASK 2
Write a function that makes all character in the values of a dict uppercase!
call it with the following dict and print the results.
{'cat': 'kass', 'dog': 'koer'}
Review
write a function that makes all characters in a list uppercase
- using a loop
- using map
- using a list comprehension
Filtering
- using for loop and creating a new list
- using
filter
+ callable (function or lambda) - using a list comprehension
TASK 3
write a function that filters out numbers divisible by 3 and 5
call it with range(0, 30)
Slicing
In [1]: a = "Hello World"
In [2]: a[:2]
Out[2]: 'He'
In [3]: a[2:]
Out[3]: 'llo World'
In [4]: a[-2:]
Out[4]: 'ld'
In [5]: a[:-2]
Out[5]: 'Hello Wor'
In [6]: a[:-2:2]
Out[6]: 'HloWr'
In [7]: a[::2]
Out[7]: 'HloWrd'
In [8]: a[::-1]
Out[8]: 'dlroW olleH'
TASK 4
write a function that sorts numbers in a list by the smallest digit of the integer.
i.e.
my_list = [11, 10, 9, 177, 199]
my_sort_function(my_list)
[10, 11, 177, 9, 199]
Interlude: Packages and Requirements
python application often include a requirements.txt
that lists pip dependencies
python packages are formatted as
package_name/ package_name/ __init__.py setup.py
and setup.py include information on depedencies
see: https://github.com/pypa/sampleproject/blob/master/setup.py
Numpy
- it is faster
- it allows multidimensional arrays
- meant for math
Basics
import numpy as np
sqaure every element in list of integers
square every element in array of integers
change shape of array
Solve system of linear equations
x - y = 3 7x - y = -3
becomes in matrix multiplaction
A = [[1, -1] . [[x], = [[3], [7, -1]] [y]] [-3]]
In [68]: a = np.array([[1, -1],[7, -1]]) In [69]: a Out[69]: array([[ 1, -1], [ 7, -1]]) In [70]: b = np.array([[3],[-3]]) In [71]: b Out[71]: array([[ 3], [-3]]) In [72]: a_inverse = np.linalg.inv(a) In [73]: a_inverse Out[73]: array([[-0.16666667, 0.16666667], [-1.16666667, 0.16666667]]) In [74]: a_inverse.dot(b) Out[74]: array([[-1.], [-4.]])
Task 3
solve for x,y, and z
x + y + z = 6 2y + 5z = -4 2x + 5y - z = 27
Pandas
https://blockchain.info/charts/market-price?timespan=1year
download the csv
Open the the csv with pandas
import pandas as pd
btc_price = pd.read_csv('~/Downloads/market-price.csv', names=['datetime', 'usd'], parse_dates=[0])
TASKS
show only days where price is above 1000USD
How many days was the price above 1000USD?
What was the price 6 months ago?
What was the average price last year?
What was the average price in august?
Plot the days on a line graph
import matplotlib.pyplot as plt
import pandas as pd
btc_price = pd.read_csv('~/Downloads/market-price.csv', names=['datetime', 'usd'], parse_dates=[0])
x = btc_price.datetime
y = btc_price.usd
plt.plot(x, y)
plt.xlabel('Date')
plt.ylabel('USD')
plt.title('BTC to USD')
plt.grid(True)
plt.show()