Python is a highly productive programming language in heavy use at many organisations around the world, including large organisations (such as Google, Cisco, NASA, Lucasfilm, Instagram), and small organisations (R&D labs, startups) alike.
With its ‘batteries included’ philosophy and huge collection of third-party modules for everything from database access to 3D animation, Python is a powerful general-purpose language with strengths in many fields.
For over 25 years, Python has been used throughout the world across industry, the service sector and in research and science to solve significant technical challenges. With a comprehensive standard library and thousands of additional libraries in the Python Package Index, Python can easily integrate with existing systems and meet a wide variety of requirements.
Unlike domain-specific languages like R, Python is a general-purpose language that is world-class across many domains for both prototyping and production systems. It is used everywhere from machine learning (for TensorFlow) to robotics (MicroPython), web apps (Django & Flask) to DevOps (Ansible & Salt).
With Python, the distance between developers and end-users is shrinking. This means increasing numbers of scientists, financial traders, policy experts, education providers and engineers with little programming experience are using Python to solve complex technical problems.
Python is steadily becoming the most important language for scientific and engineering work, boasting a wide ecosystem of packages available for tasks from neuroscience to audio compression, 3D animation to statistical pattern recognition.
There are superb tools for using Python interactively for scientific and engineering work: particularly theIPython Notebook, which allows very rapid development, testing of ideas, and plotting of analysis results within a browser window.
Python has long been good for extracting data from diverse sources and preparing it for modelling, but has traditionally been less suited for interactive data analysis and modelling than domain-specific languages such as R and commercial offerings such as SAS.
This is now changing: since mid-2011, Python has seen a huge boost through intensive development of the Pandas library, which is now well on its way to becoming the best tool for data analysis and modelling in any language.
The Python ecosystem is now consolidating around the Pandas library as the basis for data analysis work; for example, the StatsModels project for statistical modelling and data exploration is being rewritten using Pandas as its base.
Statistics tools are also provided by the SciPy project. This provides a comprehensive set of tools for optimization, curve-fitting, and Monte Carlo simulation, as does the more specialized scikits.learn package for machine learning.
Python makes it easy to generate a wide range of beautiful plots in 2D and 3D. The Matplotlib library is for 2D plotting; the example plots below are drawn from the Matplotlib Gallery page, which also shows many other examples and the Python code needed to generate them.
Python is also heavily used in 3D graphics. Lucasfilm, for example, uses Python for its entire production pipeline for its animated movies such as Avatar. The visualizations below were generated using the MayaVi package.
Python is increasingly being used in meteorology, climate science, flood modelling, land management, and environmental analysis to boost productivity, and enhance the processing and visualisation possibilities for the earth sciences.
Python can enhance your scientific computing and geospatial (GIS) capabilities, by integrating with leading GIS software such as ArcGIS and QGIS.
Python excels at interacting with relational databases. The native Python DB-API is the base for low-level SQL communication on which Python's higher-level SQLAlchemy package (for general work) and the Django ORM (for web apps) are built.
Python also excels at handling massive volumes of data that are too big for most relational database systems such as Oracle. The PyTables tool makes it easy to work with terabytes of hierarchical data in the excellent industry-standard HDF5 format in use for such data-intensive fields as oceanography and real-time data acquisition.
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Django powers thousands of great sites online, such as the New York Times, Instagram, Discus, Pinterest and The Guardian.
“One of the best programming courses I have attended - thanks!”
“Excellent training course, excellently presented. Perhaps the best that I have had in the area of IT / programming.”
“Both Ed and Henry presented well…. The course structure was adjusted to suit the participants quickly and easily.”
“Course content was well presented and easily digested. Practical exercises were an essential part of the course – a good ratio of lecture/play was achieved. Well done Ed and Henry!”
“Very comprehensive intro to every aspect of python. Highly qualified trainer. Beyond my expectation on every aspect. ”
“I loved it. Ed was inspiring.”
“One of the best training courses I've been on.”
“Instructor was superb - very impressive. I really enjoyed the course - thanks!”
“It was a pleasure ... Shared feedback from all involved was that it’s been one of the most beneficial and well delivered training courses we’ve been a part of.”
“Very impressed with the course, delivery. And depth of knowledge of Ed and Henry. Far exceeded my expectations and has greatly improved my core skills as well as inspired so many new ideas for my current work / projects. Thank you!”
“The course was delivered by trainers who were extremely knowledgeable in their field. It was really good to learn from the best!”
“Really impressed by Python's capability and excited to use as alternative to MatLab, as is free and better supported.”
“Was the most fulfilling and rewarding class I have taken since "general relativity" at uni. Was extremely well run. Excellent all round!”
“This course has shown me how I could have done the work I was doing just last week 10x more efficiently in Python.”
“The VM setup and USB is great. Ed is an excellent instructor - he presents well and welcomes any questions. He is clearly a super smart guy who has a great grasp on what he is teaching - able to just prototype on the fly and the course overall really opened my eyes to python. ”
“Great course. Enjoyed it and will follow up with some practical implementation of some of the work.”