In [47]:
import numpy
import matplotlib.pyplot
%matplotlib inline

In [48]:
data = numpy.loadtxt(fname='data/weather-01.csv', delimiter=',')

In [49]:
# Create a wide figure to hold the subplots
fig = matplotlib.pyplot.figure (figsize=(10.0,3.0))

# Create Placeholders for the plots
subplot1 = fig.add_subplot (1,3,1)
subplot2 = fig.add_subplot (1,3,2)
subplot3 = fig.add_subplot (1,3,3)

subplot1.set_ylabel('average')
subplot1.plot(numpy.mean(data, axis = 0))

subplot2.set_ylabel('minimum')
subplot2.plot(numpy.min(data, axis = 0))

subplot3.set_ylabel('maximum')
subplot3.plot(numpy.max(data, axis = 0))

fig.tight_layout()
matplotlib.pyplot.show()


Loop


In [50]:
word = 'notebook'
print (word[4])


b

In [51]:
for char in word:
    print (char)


n
o
t
e
b
o
o
k

Get a list of all the filenames from disk


In [52]:
# Importing glob
import glob

In [53]:
print (glob.glob('data/weather*.csv'))


['data/weather-01.csv', 'data/weather-02.csv', 'data/weather-03.csv', 'data/weather-04.csv', 'data/weather-05.csv', 'data/weather-06.csv', 'data/weather-07.csv', 'data/weather-08.csv', 'data/weather-09.csv', 'data/weather-10.csv', 'data/weather-11.csv', 'data/weather-12.csv']

From the previous code Putting all this togther


In [54]:
filenames = sorted(glob.glob('data/weather*.csv'))
#filenames = filenames[0:12]

for f in filenames:
    print (f)
    data = numpy.loadtxt(fname=f, delimiter=',')
    
    if numpy.max (data, axis=0) [0] == 0 and numpy.max (data, axis=0)[20] == 20:
        print ("Suspicious looking maxima")
    elif numpy.sum(numpy.min(data, axis=0)) == 0:
        print ("Minima add up to zero")
    else:
        print ("Data looks OK")

    # Create a wide figure to hold the subplots
    fig = matplotlib.pyplot.figure (figsize=(10.0,3.0))

    # Create Placeholders for the plots
    subplot1 = fig.add_subplot (1,3,1)
    subplot2 = fig.add_subplot (1,3,2)
    subplot3 = fig.add_subplot (1,3,3)

    subplot1.set_ylabel('average')
    subplot1.plot(numpy.mean(data, axis = 0))

    subplot2.set_ylabel('minimum')
    subplot2.plot(numpy.min(data, axis = 0))

    subplot3.set_ylabel('maximum')
    subplot3.plot(numpy.max(data, axis = 0))

    fig.tight_layout()
    matplotlib.pyplot.show()


data/weather-01.csv
Suspicious looking maxima
data/weather-02.csv
Suspicious looking maxima
data/weather-03.csv
Minima add up to zero
data/weather-04.csv
Suspicious looking maxima
data/weather-05.csv
Suspicious looking maxima
data/weather-06.csv
Suspicious looking maxima
data/weather-07.csv
Suspicious looking maxima
data/weather-08.csv
Minima add up to zero
data/weather-09.csv
Suspicious looking maxima
data/weather-10.csv
Suspicious looking maxima
data/weather-11.csv
Minima add up to zero
data/weather-12.csv
Suspicious looking maxima

Making Decisions


In [55]:
num = 101
if num > 100:
    print ("Greater")
else:
    print ("Not Greater")
    print ("Done")


Greater

In [56]:
num = 37
if num > 100:
    print ("Greater")
else:
    print ("Not Greater")
print ("Done")


Not Greater
Done

In [57]:
num = 10

if num > 0:
    print (num, "is positive")
elif num == 0:
    print (num, "is zero")
else:
    print (num, "is negative")


10 is positive

Functions


In [58]:
def fahr_to_kelvin(temp):
    return ((temp - 32) * (5/9) + 273.15)

In [59]:
print ("Frezzing Point of water:", fahr_to_kelvin(32))


Frezzing Point of water: 273.15

In [60]:
print ("Boiling Point of water:", fahr_to_kelvin(212))


Boiling Point of water: 373.15

In [65]:
def analyse (filename):
    """This is a function that does analyse the data and does a plot of Graphs"""
    
    data = numpy.loadtxt(fname=filename, delimiter=',')
    
    # Create a wide figure to hold the subplots
    fig = matplotlib.pyplot.figure (figsize=(10.0,3.0))

    # Create Placeholders for the plots
    subplot1 = fig.add_subplot (1,3,1)
    subplot2 = fig.add_subplot (1,3,2)
    subplot3 = fig.add_subplot (1,3,3)

    subplot1.set_ylabel('average')
    subplot1.plot(numpy.mean(data, axis = 0))

    subplot2.set_ylabel('minimum')
    subplot2.plot(numpy.min(data, axis = 0))

    subplot3.set_ylabel('maximum')
    subplot3.plot(numpy.max(data, axis = 0))

    fig.tight_layout()
    matplotlib.pyplot.show()

In [63]:
def detect_problems (filename):
 
    """Some of our temperature files have problems, check for these.
    
    This fucntion reads a file (filename argument) and reports on odd looking maxima and minima
    that add up to zero. 
    
    This seems to happen when the sensors break.
    The function does not return any data. """
    
    data = numpy.loadtxt(fname=filename, delimiter=',')
    
    if numpy.max (data, axis=0) [0] == 0 and numpy.max (data, axis=0)[20] == 20:
        print ("Suspicious looking maxima")
    elif numpy.sum(numpy.min(data, axis=0)) == 0:
        print ("Minima add up to zero")
    else:
        print ("Data looks OK")

In [ ]:
for f in filenames [0:5]:
    print (f)
    analyse (f)
    detect_problems (f)

In [ ]:
help(numpy.loadtxt)

Adding Documentation to python functions


In [ ]:
# Already written function (detect_problems) does not have any documentation
help(detect_problems)

In [64]:
# Please refer to the comment section in all functions
help(detect_problems)


Help on function detect_problems in module __main__:

detect_problems(filename)
    Some of our temperature files have problems, check for these.
    
    This fucntion reads a file (filename argument) and reports on odd looking maxima and minima
    that add up to zero. 
    
    This seems to happen when the sensors break.
    The function does not return any data.


In [66]:
# Please refer to the comment section in all functions
help(analyse)


Help on function analyse in module __main__:

analyse(filename)
    This is a function that does analyse the data and does a plot of Graphs


In [ ]: