loading_data_from_files/script.rst
changeset 522 d33698326409
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loading_data_from_files/script.rst	Wed Dec 01 16:51:35 2010 +0530
@@ -0,0 +1,180 @@
+.. Objectives
+.. ----------
+
+.. At the end of this tutorial, you will be able to
+
+.. + Read data from files, containing a single column of data using the
+..   ``loadtxt`` command.
+.. + Read multiple columns of data, separated by spaces or other
+..   delimiters.
+
+
+.. Prerequisites
+.. -------------
+
+.. 1. getting started with ``ipython``
+     
+.. #[Anand: author and internal reviewer  not mentioned]
+.. Author              : Puneeth Changanti
+   Internal Reviewer   : Nishanth Amuluru
+   External Reviewer   :
+   Language Reviewer   : Bhanukiran
+   Checklist OK?       : <06-11-2010 Anand, OK> [2010-10-05]
+
+Script
+------
+
+{{{ Show the slide containing title }}}
+
+Hello Friends. Welcome to this tutorial on loading data from files.
+
+{{{ Screen shows welcome slide }}}
+
+We often require to plot points obtained from experimental
+observations. In this tutorial we shall learn to read data from files
+and save it into sequences that can later be used to plot.
+
+{{{ Show the outline for this tutorial }}} 
+
+We shall use the ``loadtxt`` command to load data from files. We will
+be looking at how to read a file with multiple columns of data and
+load each column of data into a sequence. 
+
+{{{ switch back to the terminal }}}
+
+As usual, let us start IPython, using 
+::
+
+  ipython -pylab 
+
+Now, Let us begin with reading the file primes.txt, which contains
+just a list of primes listed in a column, using the loadtxt command.
+The file, in our case, is present in ``/home/fossee/primes.txt``. 
+
+{{{ Navigate to the path in the OS, open the file and show it }}}
+
+.. #[punch: do we need a slide for showing the path?]
+
+.. We use the ``cat`` command to see the contents of this file. 
+
+.. #[punch: should we show the cat command here? seems like a good place
+   to do it] ::
+
+     cat /home/fossee/primes.txt
+
+.. #[Nishanth]: A problem for windows users.
+                Should we simply open the file and show them the data
+                so that we can be fine with GNU/Linux ;) and windows?
+
+Now let us read this list into the variable ``primes``.
+::
+
+  primes = loadtxt('/home/fossee/primes.txt')
+
+``primes`` is now a sequence of primes, that was listed in the file,
+``primes.txt``.
+
+We now type, ``print primes`` to see the sequence printed.
+
+We observe that all of the numbers end with a period. This is so,
+because these numbers are actually read as ``floats``. We shall learn
+about them, later.
+
+Now, let us use the ``loadtxt`` command to read a file that contains
+two columns of data, ``pendulum.txt``. This file contains the length
+of the pendulum in the first column and the corresponding time period
+in the second. Note that ``loadtxt`` needs both the columns to have
+equal number of rows. 
+
+.. Following is an exercise that you must do. 
+
+.. %%1%% Use the ``cat`` command to view the contents of this file.
+
+.. Please, pause the video here. Do the exercise and then continue. 
+
+.. This is how we look at the contents of the file, ``pendulum.txt``
+.. ::
+
+..   cat /home/fossee/pendulum.txt
+
+.. #[Nishanth]: The first column is L values and second is T values
+                from a simple pendulum experiment.
+                Since you are using the variable names later in the
+                script.
+                Not necessary but can be included also.
+
+Let us, now, read the data into the variable ``pend``. Again, it is
+assumed that the file is in ``/home/fossee/``
+::
+
+  pend = loadtxt('/home/fossee/pendulum.txt')
+
+Let us now print the variable ``pend`` and see what's in it. 
+::
+
+  print pend
+
+Notice that ``pend`` is not a simple sequence like ``primes``. It has
+two sequences, containing both the columns of the data file. Let us
+use an additional argument of the ``loadtxt`` command, to read it into
+two separate, simple sequences.
+::
+
+  L, T = loadtxt('/home/fossee/pendulum.txt', unpack=True)
+
+.. #[Nishanth]: It has a sequence of items in which each item contains
+                two values. first is l and second is t
+
+Let us now, print the variables L and T, to see what they contain.
+::
+
+  print L
+  print T
+
+.. #[Nishanth]: Stress on ``unpack=True`` ??
+
+Notice, that L and T now contain the first and second columns of data
+from the data file, ``pendulum.txt``, and they are both simple
+sequences. ``unpack=True`` has given us the two columns into two
+separate sequences instead of one complex sequence. 
+
+{{{ show the slide with loadtxt --- other features }}}
+
+In this tutorial, we have learnt the basic use of the ``loadtxt``
+command, which is capable of doing a lot more than we have used it for
+until now. Let us look at an example, but before that do this
+exercise. 
+
+%%1%% Read the file ``pendulum_semicolon.txt`` which contains the same
+data as ``pendulum.txt``, but the columns are separated by semi-colons
+instead of spaces. Use the IPython help to see how to do this. 
+
+Please, pause the video here. Do the exercise and then continue. 
+
+{{{ switch back to the terminal }}}
+::
+
+  L, T = loadtxt('/home/fossee/pendulum_semicolon.txt', unpack=True, delimiter=';')
+
+  print L
+
+  print T
+
+This brings us to the end of this tutorial. 
+
+{{{ show the summary slide }}}
+
+You should now be able to do the following, comfortably. 
+
+  + Read data from files, containing a single column of data using the
+    ``loadtxt`` command.
+  + Read multiple columns of data, separated by spaces or other
+    delimiters.
+
+{{{ Show the "sponsored by FOSSEE" slide }}}
+
+This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India
+
+Hope you have enjoyed and found it useful.
+Thank you!
+