Python's for loops are incredibly useful. They can iterate directly over most iterables or be indexed. This does not sound like a problem, since more choices should not lead to worse results. The problem is not that the results are any worse, it's that there is a simple way to get the both of best worlds. Here's a short tutorial on it.
NumPy is pure gold. It is fast, easy to learn, feature-rich, and therefore at the core of almost all popular scientific packages in the Python universe (including SciPy and Pandas, two most widely used packages for data science and statistical modeling). In this article, let us discuss briefly about two interesting features of NumPy viz. mutation by slicing and broadcasting.