ipython 2.0.0
ipython.org
ipython.org
I'm especially excited about the notebook subfolders. Ah, the little things in life.
The principal milestones of 2.0 are:
- interactive widgets for the notebook
- directory navigation in the notebook dashboard
- persistent URLs for notebooks
- a new modal user interface in the notebook
- a security model for notebooksIf you're in the mood to fix something else: the changelog doesn't currently agree with itself about whether Python 3.2 is supported.
It also has matplotlib support, so you can trivially turn Matplotlib figures into interactive web plots (e.g. this interactive plot built via Seaborn, which is a statistical plotting package that uses matplotlib): http://bokeh.pydata.org/docs/gallery/violin.html
If you want to view larger data, access the downsampling capabilities of the Bokeh plot server, coordinate views between multiple instances of the notebook, or do streaming and animated plots, then you will need to run the bokeh server.
What are the best perceptual approaches to honestly and accurately represent the data to domain experts and SMEs so they can apply their intuition to the data?
I dunno mate, what's an SME for fucking starters?
Now I can just create widgets from my D3 visualizations, connect the Pandas dataframe and it is done. Also, I can continue to refine my standalone D3 visualizations and the widgets will benefit. All of this I used to do by hand, in a separate multistage process, I can now do directly and interactively.
Getting a real table view from Dataframe is the missing link. Now to search for the JS table plugin that can handle multi-index, hierarchical tables...
See http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/... for an example.
It is much more clear how those using Python for scientific work would use it, but does anyone have some great examples on how you use it when building apps or other projects?
- I have a script that runs at midnight to fetch the last day's data and run an IPython notebook with runipy (https://pypi.python.org/pypi/runipy). I render the notebook to HTML with nbconvert with a template that hides the Python code, and emails me the output.
- I have a model that needs to be trained occasionally as part of a workflow. Rather than writing a python script, I use a notebook. After training the model I plot some graphs to evaluate/validate the model and these become part of an HTML report that gets generated alongside the model. I use runipy to automate the pipeline.
For example, you can write stuff like
files = !ls -a
for f in files:
!diff $f "some_file"
if _exit_code != 0:
some_function(f)
and it even correctly handles spaces in file names. (what sorcery is this?!)Does anyone have any experience reports on using ipython as a better shell on top of cmd.exe rather than on top of a *nix shell?
That's a good point, and not nit-picky at all. However, I think the dependency is on the Unix commands (mv, cp, ...), not bash or sh, which still makes this mixed approach unsuitable for truly platform-independent scripting.
Of course, this point is moot when you use it as your personal shell, or when scripting for your Unix servers, etc.
I'm using fish <http://fishshell.com/> for both scripting (saner syntax, space handling) and interactive (multiline syntax highlighted prompt) and never looked back.
But this makes me consider ipython again, perhaps even as main shell. Hmm, after %rehashx I can use commands without !, e.g. git diff. <http://ipython.org/ipython-doc/stable/interactive/shell.html... Moreover, this means I can have a notebook experience for my shell. Together with the new directory navigation and friendly URLs this is becoming very attractive!
There is however a deal-breaker: no smart completion for shell commands. But it'd be clearly possible to implement it by harnessing bash (or zsh or fish) for completions.
import ipdb
Later: ipdb.set_trace()
Look around. Inspect some stuff. Change some values. Write some prototype code.I have no idea how I debugged before ipdb, and my node suffers because node inspector isn't anywhere near as powerful.
Seriously, it's awesome.
pip install ipython pyzmq jinja2 tornado
And then: ipython notebook
should open the web UI in your default browser. pip install ipython[notebook]So I think the answer to your question may be "not today."
Probably the simplest thing is to wait until a version of Anaconda with the new ipython is available, then update Anaconda itself.
Someone please correct me, I'm a newish Anaconda user.
Interestingly, if I then do `conda update anaconda`, it unlinks IPython 2.0.0 and re-links 1.1.0 after confirmation (which I decline, of course).
Then I started ipython notebook and got the new interface. So cool, but not sure what conda search is telling me now. Anyway, thanks for that, I'll use it with care and eyes open.
ipython is a pretty sweet interactive interpreter. Also try ipdb[0]. I can't live without the interactive debugging it offers.