One Dimensional Maps

Creating one-dimensional maps is a very easy and straightforward process that can be used to explore chaotic behavior. Given some function we take an initial value and use the iterative process $$ x_{n+1} = f\left(x_n\right) $$ One popular map to explore is the Logistic Map, defined as $$ x_{n+1} = …

An Introduction to Plotting in Python

After having some Applied Math friends rant to me at how awful plotting was in Python I decided to write up a quick guide to hopefully change their minds. Numpy This assumes a basic familiarity with numpy, although I’ll go over the basics really quickly just in case. The syntax/API …

The Python Typing Module

The typing module added in Python 3.5 (see reference docs here) adds additional types and meta-types to allow for more control over python type hints. In this post we’ll talk about what this module adds and what neat things you can do with it. This is the third post in …

Python Type Hinting

In Python 3.5 and greater an “optional type hinting syntax” was added. This is part of a gradual typing implementation (gradual typing is essentially adding a few types to an untyped codebase, or only partially typing the codebase as you go). This is the second post in a multi-part series …

The Good, the Bad, and the Ugly of Tuple Unpacking

Python has this neat feature of unpacking tuples during item assignment. Here’s a general example:

or if you have a function that returns multiple items:

But what if (for some reason) you have a function that returns some large number of variables (or a smaller number of long-named …

An Introduction to Python’s Types

In this post we’ll talk about python’s types, how to use them, how they’re treated, and what we can do with typing. This is aimed at beginners who have heard the words “Python” and “Types” but haven’t quite nailed down what they have to do with each other. This is …

A quick guide to os.fork in Python

Paralellization usually is pretty tricky in python, however there’s a super easy way to implement pretty straightforward parallelization using the built-in os.fork() functionality. Let’s talk about what os.fork() actually does. In short, it simply creates an additional copy (referred to as the “child process”) of the running program at the …