Choosing The Right Data Structure for Analysis




Untitled







In [4]:
import datetime 

Dictionary

Dictionary is used when there exists a mapping relationship, for example, in stock market data, stock prices are linked to a specific date.

In [94]:
stock = {"Header":["Open","High","Low","Close"],"12/12/2015":[32.03,50,40,32]}
In [95]:
stock["12/12/2015"]
Out[95]:
[32.03, 50, 40, 32]

Dictionary provides some useful methods

In [74]:
list(stock.iterkeys())  #key iterator, giving you a list
Out[74]:
['Header', '12/12/2015']
In [78]:
list(stock.iteritems()) #iterm iterator, giving you tuples, representing relations
Out[78]:
[('Header', ['Open', 'High', 'Low', 'Close']),
 ('12/12/2015', [32.03, 50, 40, 32])]

Dictionary can also be feeded in the constructor of pandas dataframe. We will talk about this in my later posts.

Tuple

Anything you want to be considered as a whole should use turple becuase it’s immutable. Turple often used in feeding a set of arguments into function caller.

In [68]:
x=12
y=23
z=23.6

point = (x,y,z) # a coordinate can use turple to replesent because the
                # position of each element matters 

Some people also argues that you can compare tuple to strcut in C/C++ since tuple usually holds heterogeneous collections.

As I mentioned, tuple also used to represent relations in discrete data structure. I can use you an example using dictionary and tuple

In [66]:
# for example, we have y = x^2
f = {1:1,2:4,3:9}
f.items()  # the items method can turn dictionary into a tuple
Out[66]:
[(1, 1), (2, 4), (3, 9)]

List

List is like array in other programming language. You should use list in situations that uses array. In python, list provides you more methods to perform comprehensive analysis.

List as stack operation

In [14]:
l = []
l.append(1)
l.append(2)
l.append(3)
In [15]:
l
Out[15]:
[1, 2, 3]
In [22]:
l.pop()  # First in first out 
Out[22]:
1
In [17]:
l
Out[17]:
[1, 2]
In [18]:
l.append(4)
l
Out[18]:
[1, 2, 4]
In [19]:
l.pop()
Out[19]:
4
In [20]:
l.pop()
Out[20]:
2
In [21]:
l
Out[21]:
[1]

List sorting

In [32]:
l = [2,3,9,4]
l.sort()
In [33]:
l
Out[33]:
[2, 3, 4, 9]

List Reversing

In [34]:
l.reverse()
In [35]:
l
Out[35]:
[9, 4, 3, 2]

List Extend Method

In [40]:
l.extend([1]) # need to feed a list, and will insert the element to a proper place
In [39]:
l
Out[39]:
[9, 4, 3, 2, 1]

Other List Methods

In [42]:
l.remove(1) #remove elements
l
Out[42]:
[9, 4, 3, 2]
In [52]:
l.index(4) # return the position of an element
Out[52]:
1
In [62]:
l.insert(0,2) # insert 2 into index 0
l
Out[62]:
[2, 9, 4, 3, 2]

We will talk about data structure usage more in-depth later in my blog when we go further into analysis.

Write a Comment