diff -r 88a01948450d -r d33698326409 loading_data_from_files/script.rst --- /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! +