Skip to main content

ipython notebook

I'm, of course, a Python groupie. Many of you perhaps use Matlab or Mathematica as an interactive environment to explore math (or algebra). Python has had the regular python shell and then Ipython, which allows such easy interactive exploration.

However, when using the python shell, I always feel the need to open up a separate editor and write scripts when the concepts get a little complicated, and this takes away a little of the interactiveness.

Ipython notebook changes all that. You should really try it out. The Ipython notebook uses your browser as a GUI (something I heartily support). It breaks everything up into 'cells'. Some cells can be text and some can be code. Each code cell can be executed on its own but as part of a common workspace.

This is ideal for me as I write this blog: I type in some code and execute it to see results (including graphs). Then I type up some text explaining the what I just did. I then move on to another cell for the next part. I can go back to an earlier cell and change code and then rerun everything, or just a part of it. It's like one giant interactive script. I love it.

There still is not a polished way to convert the notebook to say a wordpress post (though there is a pipeline for blogger). This script works for me to convert the figures into .png format. I simply copy and paste by code and text into this blog from the notebook and then attach the figure .png files. Janky and increases the time spent, but whatever.

Comments

Popular posts from this blog

Python: Multiprocessing: passing multiple arguments to a function

Write a wrapper function to unpack the arguments before calling the real function. Lambda won't work, for some strange un-Pythonic reason.


import multiprocessing as mp def myfun(a,b): print a + b def mf_wrap(args): return myfun(*args) p = mp.Pool(4) fl = [(a,b) for a in range(3) for b in range(2)] #mf_wrap = lambda args: myfun(*args) -> this sucker, though more pythonic and compact, won't work p.map(mf_wrap, fl)

Flowing text in inkscape (Poster making)

You can flow text into arbitrary shapes in inkscape. (From a hint here).

You simply create a text box, type your text into it, create a frame with some drawing tool, select both the text box and the frame (click and shift) and then go to text->flow into frame.

UPDATE:

The omnipresent anonymous asked:
Trying to enter sentence so that text forms the number three...any ideas?
The solution:
Type '3' using the text toolConvert to path using object->pathSize as necessaryRemove fillUngroupType in actual text in new text boxSelect the text and the '3' pathFlow the text

Drawing circles using matplotlib

Use the pylab.Circle command

import pylab #Imports matplotlib and a host of other useful modules cir1 = pylab.Circle((0,0), radius=0.75, fc='y') #Creates a patch that looks like a circle (fc= face color) cir2 = pylab.Circle((.5,.5), radius=0.25, alpha =.2, fc='b') #Repeat (alpha=.2 means make it very translucent) ax = pylab.axes(aspect=1) #Creates empty axes (aspect=1 means scale things so that circles look like circles) ax.add_patch(cir1) #Grab the current axes, add the patch to it ax.add_patch(cir2) #Repeat pylab.show()