NumPy is the fundamental Python package for scientific computing. It adds the capabilities of N-dimensional arrays, element-by-element operations (broadcasting), core mathematical operations like linear algebra, and the ability to wrap C/C++/Fortran code. We will cover most of these aspects in this chapter by first covering what NumPy arrays are, and their advantages versus Python lists and dictionaries.
Python stores data in several different ways, but the most popular methods are
lists and dictionaries. The Python
list object can store nearly any type of Python object as an
element. But operating on the elements in a list can only be done through iterative loops,
which is computationally inefficient in Python. The NumPy package enables users to overcome
the shortcomings of the Python lists by providing a data storage object called
ndarray is similar to lists, but rather than being
highly flexible by storing different types of objects in one list, only the same type of
element can be stored in each column. For example, with a Python list, you could make the
first element a list and the second another list or dictionary. With NumPy arrays, you can
only store the same type of element, e.g., all elements must be floats, integers, or strings.
Despite this limitation,
ndarray wins hands down when it
comes to operation times, as the operations are sped up significantly. Using the
%timeit magic command in IPython, we compare the power of NumPy ...