In [1]:
import numpy

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


Out[5]:
array([[ 0.,  0.,  1., ...,  3.,  0.,  0.],
       [ 0.,  1.,  2., ...,  1.,  0.,  1.],
       [ 0.,  1.,  1., ...,  2.,  1.,  1.],
       ..., 
       [ 0.,  1.,  1., ...,  1.,  1.,  1.],
       [ 0.,  0.,  0., ...,  0.,  2.,  0.],
       [ 0.,  0.,  1., ...,  1.,  1.,  0.]])

In [3]:
!ls data


'ls' is not recognized as an internal or external command,
operable program or batch file.

In [6]:
weight_kg = 55

In [7]:
print (weight_kg)


55

In [8]:
print('Weight in pounds: ', weight_kg * 2.2)


Weight in pounds:  121.00000000000001
print ('New weight: ', weight_kg * 2.2)

In [9]:
print ('New weight: ', weight_kg * 2.2)


New weight:  121.00000000000001

In [11]:
%whos


Variable    Type      Data/Info
-------------------------------
numpy       module    <module 'numpy' from 'C:\<...>ges\\numpy\\__init__.py'>
weight_kg   int       55

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

In [13]:
print (data)


[[ 0.  0.  1. ...,  3.  0.  0.]
 [ 0.  1.  2. ...,  1.  0.  1.]
 [ 0.  1.  1. ...,  2.  1.  1.]
 ..., 
 [ 0.  1.  1. ...,  1.  1.  1.]
 [ 0.  0.  0. ...,  0.  2.  0.]
 [ 0.  0.  1. ...,  1.  1.  0.]]

In [14]:
print (type(data))


<class 'numpy.ndarray'>

In [15]:
%whos


Variable    Type       Data/Info
--------------------------------
data        ndarray    60x40: 2400 elems, type `float64`, 19200 bytes
numpy       module     <module 'numpy' from 'C:\<...>ges\\numpy\\__init__.py'>
weight_kg   int        55

In [16]:
# Finding out the data type
print (data.dtype)


float64

In [17]:
# Finf out the shape
print (data.shape)


(60, 40)

In [18]:
# This is 60 rows * 40 columns

In [19]:
# Getting a single number out of the array

In [20]:
print ("First value in data: ", data [0,0])


First value in data:  0.0

In [21]:
print('A middle value: ', data[30,20])


A middle value:  13.0

In [22]:
# Lets get the first 10 columns for the first 4 rows
print(data[0:4, 0:10])


[[ 0.  0.  1.  3.  1.  2.  4.  7.  8.  3.]
 [ 0.  1.  2.  1.  2.  1.  3.  2.  2.  6.]
 [ 0.  1.  1.  3.  3.  2.  6.  2.  5.  9.]
 [ 0.  0.  2.  0.  4.  2.  2.  1.  6.  7.]]

In [23]:
# Lets get the first 10 columns for the first 4 rows
print(data[0:4, 0:10])


[[ 0.  0.  1.  3.  1.  2.  4.  7.  8.  3.]
 [ 0.  1.  2.  1.  2.  1.  3.  2.  2.  6.]
 [ 0.  1.  1.  3.  3.  2.  6.  2.  5.  9.]
 [ 0.  0.  2.  0.  4.  2.  2.  1.  6.  7.]]

In [24]:
# Lets get the first 10 columns for the first 4 rows
print(data[0:4, 0:10])
# Start at index 0 and go up to BUT NOT INCLUDING index 4


[[ 0.  0.  1.  3.  1.  2.  4.  7.  8.  3.]
 [ 0.  1.  2.  1.  2.  1.  3.  2.  2.  6.]
 [ 0.  1.  1.  3.  3.  2.  6.  2.  5.  9.]
 [ 0.  0.  2.  0.  4.  2.  2.  1.  6.  7.]]

In [25]:
# We don't need to start slicing at 0

In [26]:
# We don't need to start slicing at 0

In [27]:
# We don't need to start slicing at 0
print (data[5:10, 7:15])


[[  1.   6.   4.   7.   6.   6.   9.   9.]
 [  5.   5.   8.   6.   5.  11.   9.   4.]
 [  3.   5.   3.   7.   8.   8.   5.  10.]
 [  5.   5.   8.   2.   4.  11.  12.  10.]
 [  3.   5.   8.   6.   8.  12.   5.  13.]]

In [28]:
# We don't even need to include the UPPER and LOWER bounds
smallchunk = data [:3, 36:]

In [29]:
# We don't even need to include the UPPER and LOWER bounds
smallchunk = data [:3, 36:]

In [30]:
# We don't even need to include the UPPER and LOWER bounds
smallchunk = data [:3, 36:]
print(smallchunk)


[[ 2.  3.  0.  0.]
 [ 1.  1.  0.  1.]
 [ 2.  2.  1.  1.]]

In [31]:
#Arithmetic on arrays
doublesmallchunk = smallchunk * 2.0

In [32]:
print(doublesmallchunk)


[[ 4.  6.  0.  0.]
 [ 2.  2.  0.  2.]
 [ 4.  4.  2.  2.]]

In [33]:
triplesmallchunk = smallchunk + doublesmallchunk

In [34]:
print (triplesmallchunk)


[[ 6.  9.  0.  0.]
 [ 3.  3.  0.  3.]
 [ 6.  6.  3.  3.]]

In [35]:
print (numpy.mean(data))


6.14875

In [36]:
print (numpy.min(data))


0.0

In [37]:
# Get a set of data for the first station

In [38]:
# Get a set of data for the first station

In [39]:
# Get a set of data for the first station
station_0 = data [0,:]

In [40]:
print(numpy.max(station_0))


18.0

In [41]:
# We don't need to create 'temporary' array slices

In [42]:
# We don't need to create 'temporary' array slices

In [43]:
# We don't need to create 'temporary' array slices
# We can refere to what we call array axes

In [45]:
# axis = 0 gets the mean Down each column, so the mean temperature
# for recording period
print (numpy.mean(data,axis = 0))


[  0.           0.45         1.11666667   1.75         2.43333333   3.15
   3.8          3.88333333   5.23333333   5.51666667   5.95         5.9
   8.35         7.73333333   8.36666667   9.5          9.58333333
  10.63333333  11.56666667  12.35        13.25        11.96666667
  11.03333333  10.16666667  10.           8.66666667   9.15         7.25
   7.33333333   6.58333333   6.06666667   5.95         5.11666667   3.6
   3.3          3.56666667   2.48333333   1.5          1.13333333
   0.56666667]

In [46]:
# axis = 0 gets the mean Down each column, so the mean temperature
# for each station for all the periods
print (numpy.mean(data,axis = 1))


[ 5.45   5.425  6.1    5.9    5.55   6.225  5.975  6.65   6.625  6.525
  6.775  5.8    6.225  5.75   5.225  6.3    6.55   5.7    5.85   6.55
  5.775  5.825  6.175  6.1    5.8    6.425  6.05   6.025  6.175  6.55
  6.175  6.35   6.725  6.125  7.075  5.725  5.925  6.15   6.075  5.75
  5.975  5.725  6.3    5.9    6.75   5.925  7.225  6.15   5.95   6.275  5.7
  6.1    6.825  5.975  6.725  5.7    6.25   6.4    7.05   5.9  ]

In [47]:
# Do some simple visualisations

In [48]:
import matplotlib.pyplot

In [49]:
%matplotlib inline

In [50]:
image = matplotlib.pyplot.imshow(data)



In [51]:
# Let's look at the average temperature over time
avg_temperature = numpy.mean(data,axis = 0)

In [52]:
avg_plot = matplotlib.pyplot.plot(avg_temperature)



In [53]:
Task:


  File "<ipython-input-53-0f4dde0fa3fb>", line 1
    Task:
        ^
SyntaxError: invalid syntax

In [55]:
# Task
* Produce maximum and minimum plots of this data
* What do you think?

In [56]:
max_temperature = numpy.max(data,axis = 0)
min_temperature = numpy.min(data,axis = 0)

In [58]:
avg_plot = matplotlib.pyplot.plot(avg_temperature)
max_plot = matplotlib.pyplot.plot(max_temperature)
min_plot = matplotlib.pyplot.plot(min_temperature)



In [ ]: