I thought today I would whip up a quick post regarding Jupyter Notebooks and how to download, install and use various “addons” that I like using and find more than just a little bit useful. Among other things I’ll show how to use the “jupyter-themes” module to change and manipulate the basic theme and styling of the overall notebook, I’ll show how to download and install the Jupyter Notebook extensions module giving access to a whole range of usefull goodies you can try out, and I’ll even show you how to use Jupyter widgets and how to embed URLs, PDFs, and Youtube videos directly into a notebook itself.
Category:
Beginners Resources
This blog post is a result of a request I received on the website Facebook group page from a follower who asked me to analyse/play around with a csv data file he had provided. The request was to use Pandas to wrangle the data and perform some filtering and aggregation, with the view to plot the resulting figures using Matplotlib. Now Matplotlib was explicitly asked for, rather than Seaborn or any other higher level plotting library (even if they are built on the Matplotlib API) so I shall endeavour to use base Matplotlib where possible, rather than rely on any of the aforementioned (more user friendly) modules.
Hi all – here is the last in what has turned out to be a 3 part “series” of posts, dealing with my journey (so far) of learning Python – how I went about it and what resources I ended up using.
The first two posts can be found here – post1 and post2.
As a quick recap of the main points highlighted so far:
- It is VITAL to identify and select a project you wish to eventually create – something that really means something to you and excites you when you think about it.
- Steer clear of Codecademy as an early Python resource – Most of it is now behind a paywall and the whole concept of trapping you inside their sandboxed environment can end up causing added confusion rather than helping.
- Consider signing up to a quality MOOC beginner Python course – my recommendations are the two listed in the previous blog post. (I’m sure there are many other quality courses on offer out there, but those are the two I have experience with and they both did a good job of getting me from zero to “absolute beginner”).
- Approach the MOOC courses you decide to take in a “serious manner”. You’ll gain so much more if you solve the exercises and homeworks yourself, without searching for solutions etc on Google – it’ll take a lot longer, and take a lot more effort but that’s when the learning happens!! After all, you’re doing all this to learn right? Nothing worth having comes easy! 😉
- Prepare mentally for when you reach the inevitable “cliff of confusion” and “desert of despair” – both are surmountable with enough perseverance, hard work and simple belief in yourself!
- Be willing to take a step back and take stock of your situation objectively. You may need to revisit the process of following structured Python courses for a period, that perhaps don’t teach EXACTLY what it is your trying to focus on for your end goal. This is ok….don’t beat yourself up about it. Take a moment to appreciate how far you have come since you sat down on day 1. Perhaps even go back and attempt some of the exercises you completed in your previous MOOC courses – compare your new solution to your old one, both in terms of conceptual approach and code style or efficiency etc. I bet you surprise yourself.
Hi all, time for part 2 in the (what will probably be a 2 or 3 part) series of how I began learning Python and the methods/resources etc that I used in my journey. Saying as no on has left a comment in the last post (https://www.pythonforfinance.net/2018/12/21/learning-python-my-personal-journey/#more-16051), either positive or negative, I shall continue my rant until instructed otherwise!
As a quick summary of the main points touched on in the first post:
- It is VITAL to identify and select a project you wish to eventually create – something that really means something to you and excites you when you think about it.
- Steer clear of Codecademy as an early Python resource – Most of it is now behind a paywall and the whole concept of trapping you inside their sandboxed environment can end up causing added confusion rather than helping.
- Consider signing up to a quality MOOC beginner Python course – my recommendations are the two listed in the previous blog post. (I’m sure there are many other quality courses on offer out there, but those are the two I have experience with and they both did a good job of getting me from zero to “absolute beginner”)
I would advise that when approaching the MOOC courses mentioned above (or similar courses of your choosing), you approach them in a “serious” manner. That’s not to say don’t have fun with them, or don’t occasionally deviate from the curriculum to play around with your new found skills – but rather, make a deal with yourself that you won’t just skim through the materials, that you won’t just watch the videos and skip over any practical coding exercises and homeworks that actually require a bit of hard work and “brain sweat” to complete.
I have been asked multiple times lately, by various different people, as to whether I could write a blog post about how I got from where I started (someone who had never coded before at all), to where I am now (someone who’s still firmly in the “learning” camp, but able to create a range of semi-useful code snippets).
Those asking pointed out that although it was relatively interesting and fun reading my posts while following along, replicating my code line for line and then running the script to get their output, my posts weren’t great at actually helping people develop the necessary skills and knowledge to be able to branch out and create their own mini-programs and projects. Nor did I tend to point readers in the right direction of the actual resources that I myself had used and found useful to develop as a Python programmer.
I totally take this on board, and appreciate there is a fundamental difference between just presenting my own mini-projects in blog posts and inspiring/helping others to be able to identify and create their own mini-project“wish-list”.
In this article I shall be looking into using the Python module “openpyxl” to manipulate data within the Python ecosystem, while also being able to tap into excel functionality directly. I believe Python is a much better ecosystem within which to do any kind of data munging/analysis, however Excel is a much used platform, favoured by many as the means of final presentation once the munging/analysis has been completed.
Also, while using Python within a business office environment, users can often come across the situation whereby they need to present their findings/results to their colleagues who often times don’t even have Python or the necessary modules installed.
So how about this – being able to use Python to do the data analysis grunt work, AND being able to use Python to call native Excel methodology including conditional formatting, chart creation/insertion among other things, rather than having to save tabular data to excel/csv and THEN opening Excel and creating charts and including formatting that way.
Sounds good to me!
As promised in the last blog post, it’s time to review some of the beginner resource material mentioned previously, aimed at those who want to learn Python.
I’ve decided to start off with the courses provided by Coursera (www.coursera.com). They were my second port of call after www.codecademy.com when I first started learning Python on and off, about a year ago.
Firstly, the courses are free! Call me a cheap skate but when I find quality material, available in all its glory for “nada” dollars…well you’ve caught my attention!
Ok, so…it’s time to get started. I thought the best thing to begin with would be to do a bit of research regarding available resources for beginner Python students.
As I mentioned in a previous post, I have dabbled on and off (although very lightly) with learning Python, using some starter resources over the last year or so. This means I already have a short list in my mind of those resources and courses I’ve stumbled across so far that seemed half decent, and wish to revisit in a more serious manner.
I will be posting here regarding my journey to learn Python for use in designing and building automated trading strategies, along with general data analysis and perhaps (eventually) some web based python involving Flask and Django.
I have been meaning to do this for some time (especially on the automated trading strategy side of things), having worked as a trader for many years for various managed futures funds and hedge funds in London. I have dabbled on and off over the past year or so with sites such as www.codecademy.com and MOOC providers such as EDX, Coursera and Udacity, but have now decided to make a concerted effort. I will be aiming to use the MOOC providers mentioned previously (who doesn’t like free stuff), along with some hand selected, paid courses from Udemy and any other worthwhile resources I can get my grubby little hands on.