Python for Chemists¶
A crash course on using python for data evaluation and statistics for chemists.
What will this course cover?¶
Given Python’s popularity and its FOSS nature, the Python ecosystem has become very large and it would be hard to cover every package and add-on written. We will focus on understanding the basic structure of Python programs and getting to know a few packages that are useful for chemists - plotting, data and signal processing, statistics and machine learning. We will mainly work in a programming environment called “Jupyter Notebooks”. These are an environment that allow us two write small snippets of code and directly look at their output.
Why should you take this course?¶
In this course you will learn…
how to save time on tedious, boring tasks
how to perform data processing in a reproducible, self documenting way
how to use and combine Python packages to perform complex data evaluation
how to create great looking visualisations with a few lines of code
A personal remark…¶
The point of this crash course is not to teach “programming” as it would be taught to computer science students, but to provide an introduction to using python as a tool. Each one of us probably has a tool box at home, that contains at least a mostly structurally integer hammer, a rusty “PhilPozy”-drive screw driver, and 17 Swedish furniture wrenches. None of us are going to use those tools to create an artwork on the level of the “David” and people who ware into that sort of thing, will probably have a much bigger, better toolbox. Nevertheless, having that toolbox makes our live easier. We can out up frames ourselves, repair broken chairs and perform percussive maintenance on our appliances with it.
The same is true here - we won’t get a job at Google after this, but you might save some time in your work, when you parse a large excel sheet for missing values automatically instead of spending hours scrolling through it manually. And even if writing the program that parses the excel sheet might sometimes take about the same amount of time searching manually, it is still much more fulfilling to perform the creative task of writing code that to mindlessly scroll through oodles of numbers.
For me, another motivation for being able to program a bit is, that it enables much more creative problem solving. Typically, a commercial program with a nice user interface is written with specific use cases in mind. It will solve those use cases and similar ones mostly correctly, efficiently and with little work. But woe unto those who decide to venture outside what the software architect thought the use cases are… suddenly, you have check lists of clicks and GUI sub-menus that you all need to set correctly. Or you end up having to copy/paste spread sheets between different programs. It’s the difference between a ride in the metro and on a bike. The metro will usually get you there faster - if “there” is a metro stop. The bike is often times slower and potentially more cumbersome but it gets you pretty much anywhere. Also, biking gets easier the more you do it (This is a remarkably good metaphor).
For questions or comments, feel free to contact me.