From c400f8e6e7f24e28713cd8e9d4f42187af29792b Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sat, 26 Jul 2025 15:15:01 +0900 Subject: [PATCH 1/3] misc --- .../about_py/pytorch_vs_matlab.png | Bin 58998 -> 61865 bytes lectures/about_py.md | 110 ++++++++---------- lectures/intro.md | 7 +- 3 files changed, 49 insertions(+), 68 deletions(-) diff --git a/lectures/_static/lecture_specific/about_py/pytorch_vs_matlab.png b/lectures/_static/lecture_specific/about_py/pytorch_vs_matlab.png index 7230ad093e1aefb5dbc88b067c368151f19c8723..733e6d606c63f38ee426aa11f7147f84a6cbbd54 100644 GIT binary patch literal 61865 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 is a general-purpose language used in almost all application domains, including +{index}`Python ` is a general-purpose language used +in almost all application domains, including -* AI -* scientific computing +* AI and computer science +* other scientific computing * communication * web development * CGI and graphical user interfaces @@ -107,59 +113,47 @@ This is important because it * multimedia * etc. -It is used and supported extensively by tech firms including +It is used and supported extensively by large tech firms including * [Google](https://www.google.com/) * [OpenAI](https://openai.com/) * [Netflix](https://www.netflix.com/) * [Meta](https://opensource.fb.com/) -* [Dropbox](https://www.dropbox.com/) * [Amazon](https://www.amazon.com/) * [Reddit](https://www.reddit.com/) * etc. - - ### Relative Popularity -Python is, without doubt, one of the [most popular programming languages](https://www.tiobe.com/tiobe-index/). +Python is one of the most -- if not the most -- [popular programming languages](https://www.tiobe.com/tiobe-index/). Python libraries like [pandas](https://pandas.pydata.org/) and [Polars](https://pola.rs/) are replacing familiar tools like Excel and VBA as an essential skill in the fields of finance and banking. -Moreover, Python is extremely popular within the scientific community -- especially AI - -The following chart, produced using Stack Overflow Trends, provides some evidence. +Moreover, Python is extremely popular within the scientific community -- especially those connected to AI -It shows the popularity of a Python AI library called [PyTorch](https://pytorch.org/) relative to MATLAB. +For example, the following chart from Stack Overflow Trends shows how the +popularity of a single Python deep learning library +([PyTorch](https://pytorch.org/)) has grown over the last few yeras. ```{figure} /_static/lecture_specific/about_py/pytorch_vs_matlab.png ``` +Pytorch is just one of several Python libraries for deep learning and AI. -The chart shows that MATLAB's popularity has faded, while PyTorch is growing rapidly. - -Moreover, PyTorch is just one of the thousands of Python libraries available for scientic computing. ### Features -Python is a [high-level language](https://en.wikipedia.org/wiki/High-level_programming_language), which means it is relatively easy to read, write and debug. +Python is a [high-level +language](https://en.wikipedia.org/wiki/High-level_programming_language), which +means it is relatively easy to read, write and debug. It has a relatively small core language that is easy to learn. -This core is supported by many libraries, which you can learn to use as required. - -Python is very beginner-friendly - -* suitable for students learning programming -* used in many undergraduate and graduate programs - -Other features of Python: - -* multiple programming styles are supported (procedural, object-oriented, functional, etc.) -* [interpreted](https://en.wikipedia.org/wiki/Interpreter_(computing)) rather than [compiled](https://en.wikipedia.org/wiki/Compiler) ahead of time. +This core is supported by many libraries, which can be studied as required. +Python is flexible and pragmatic, supporting multiple programming styles (procedural, object-oriented, functional, etc.). ### Syntax and Design @@ -167,7 +161,7 @@ Other features of Python: ```{index} single: Python; syntax and design ``` -One reason for Python's popularity is its simple and elegant design --- we'll see many examples later on. +One reason for Python's popularity is its simple and elegant design. To get a feeling for this, let's look at an example. @@ -231,12 +225,9 @@ public class CSVReader { This Java code opens an imaginary file called `data.csv` and computes the mean of the values in the second column. -Even without knowing Java, you can see that the program is long and complex. - Here's Python code that does the same thing. -Even if you don't yet know Python, you can see that the code is simpler and -easier to read. +Even if you don't yet know Python, you can see that the code is far simpler and easier to read. ```{code-cell} python3 :tags: [skip-execution] @@ -256,20 +247,14 @@ print(f"Average: {total / count if count else 'No valid data'}") ``` -The simplicity of Python and its neat design are a big factor in its popularity. ### The AI Connection -Unless you have been living under a rock and avoiding all contact with the -modern world, you will know that AI is rapidly advancing. - -AI is already remarkably good at helping you write code, as discussed above. - -No doubt AI will take over many tasks currently performed by humans, -just like other forms of machinery have done over the past few centuries. +AI is in the process of taking over many tasks currently performed by humans, +just as other forms of machinery have done over the past few centuries. -Python is playing a huge role in the advance of AI and machine learning. +Moreover, Python is playing a huge role in the advance of AI and machine learning. This means that tech firms are pouring money into development of extremely powerful Python libraries. @@ -288,9 +273,7 @@ These lectures will explain how. We have already discussed the importance of Python for AI, machine learning and data science -Let's take a look at the role of Python in other areas of scientific computing. - -Python is either the dominant player or a major player in +Python is also one of the dominant players in * astronomy * chemistry @@ -305,7 +288,6 @@ operations research -- which were previously dominated by MATLAB / Excel / STATA This section briefly showcases some examples of Python for general scientific programming. - ### NumPy ```{index} single: scientific programming; numeric @@ -379,6 +361,8 @@ However, you should still learn NumPy first because * libraries like JAX directly extend NumPy functionality and hence are easier to learn when you already know NumPy. +This lecture series will provide you with extensive background in NumPy. + ### SciPy The [SciPy](http://www.scipy.org) library is built on top of NumPy and provides additional functionality. @@ -453,7 +437,7 @@ You can visit the [Python Graph Gallery](https://www.python-graph-gallery.com/) ### Networks and Graphs -The study of networks and graphs becoming an important part of scientific work +The study of [networks](https://networks.quantecon.org/) is becoming an important part of scientific work in economics, finance and other fields. For example, we are interesting in studying @@ -463,8 +447,6 @@ For example, we are interesting in studying * friendship and social networks * etc. -(We have a [book on economic networks](https://networks.quantecon.org/) if you would like to learn more.) - Python has many libraries for studying networks and graphs. ```{index} single: NetworkX diff --git a/lectures/intro.md b/lectures/intro.md index a89b608c..440a2a1b 100644 --- a/lectures/intro.md +++ b/lectures/intro.md @@ -11,11 +11,10 @@ kernelspec: # Python Programming for Economics and Finance -This website presents a set of lectures on Python programming for economics and finance. +These lectures are the first in [the set of lecture series](https://quantecon.org/lectures/) provided by QuantEcon. -This is the first text in the series, which focuses on programming in Python. - -For an overview of the series, see [this page](https://quantecon.org/lectures/) +They focus on learning to program in Python, with a view to applications in +economics and finance. ```{tableofcontents} ``` From e85b95be53e290ece3c1cce169d730fe9ff1658b Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sat, 26 Jul 2025 16:32:50 +0900 Subject: [PATCH 2/3] misc --- lectures/need_for_speed.md | 66 ++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/lectures/need_for_speed.md b/lectures/need_for_speed.md index b61a56cd..51d8bbec 100644 --- a/lectures/need_for_speed.md +++ b/lectures/need_for_speed.md @@ -27,10 +27,10 @@ premature optimization is the root of all evil." -- Donald Knuth ## Overview -Python is extremely popular for scientific computing, due to such factors as +Python is popular for scientific computing due to factors such as * the accessible and expressive nature of the language itself, -* its vast range of high quality scientific libraries, +* the huge range of high quality scientific libraries, * the fact that the language and libraries are open source, * the popular [Anaconda Python distribution](https://www.anaconda.com/download), which simplifies installation and management of scientific libraries, and * the key role that Python plays in data science, machine learning and artificial intelligence. @@ -70,7 +70,9 @@ One reason we use scientific libraries is because they implement routines we wan For example, it's almost always better to use an existing routine for root finding than to write a new one from scratch. -(For standard algorithms, efficiency is maximized if the community can coordinate on a common set of implementations, written by experts and tuned by users to be as fast and robust as possible.) +(For standard algorithms, efficiency is maximized if the community can +coordinate on a common set of implementations, written by experts and tuned by +users to be as fast and robust as possible.) But this is not the only reason that we use Python's scientific libraries. @@ -93,9 +95,9 @@ At QuantEcon, the scientific libraries we use most often are * [NumPy](https://numpy.org/) * [SciPy](https://scipy.org/) * [Matplotlib](https://matplotlib.org/) +* [JAX](https://github.com/jax-ml/jax) * [Pandas](https://pandas.pydata.org/) * [Numba](https://numba.pydata.org/) and -* [JAX](https://github.com/jax-ml/jax) Here's how they fit together: @@ -104,14 +106,11 @@ Here's how they fit together: multiplication). * SciPy builds on NumPy by adding numerical methods routinely used in science (interpolation, optimization, root finding, etc.). * Matplotlib is used to generate figures, with a focus on plotting data stored in NumPy arrays. -* Pandas provides types and functions for manipulating data. -* Numba provides a just-in-time compiler that integrates well with NumPy and - helps accelerate Python code. * JAX includes array processing operations similar to NumPy, automatic differentiation, a parallelization-centric just-in-time compiler, and automated integration with hardware accelerators such as GPUs. - - +* Pandas provides types and functions for manipulating data. +* Numba provides a just-in-time compiler that plays well with NumPy and helps accelerate Python code. ## The Need for Speed @@ -133,11 +132,9 @@ Indeed, the standard implementation of Python (called CPython) cannot match the Does that mean that we should just switch to C or Fortran for everything? -The answer is: No, no, and one hundred times no! - -(This is what you should say to your professor when they insist that your model needs to be rewritten in Fortran or C++.) +The answer is: No! -There are two reasons why: +There are three reasons why: First, for any given program, relatively few lines are ever going to be time-critical. @@ -145,13 +142,17 @@ Hence it is far more efficient to write most of our code in a high productivity Second, even for those lines of code that *are* time-critical, we can now achieve the same speed as C or Fortran using Python's scientific libraries. -In fact we can often do better, because some scientific libraries are so -effective at accelerating and parallelizing our code. +Third, in the last few years, accelerating code has become essentially +synonymous with parallelizing execution, and this task is best left to +specialized compilers. + +Certain Python libraries have outstanding capabilities for parallelizing +scientific code -- we'll discuss this more as we go along. ### Where are the Bottlenecks? -Before we learn how to do this, let's try to understand why plain vanilla Python is slower than C or Fortran. +Before we do so, let's try to understand why plain vanilla Python is slower than C or Fortran. This will, in turn, help us figure out how to speed things up. @@ -275,17 +276,22 @@ Let's look at some ways around these problems. ```{index} single: Python; Vectorization ``` -There is a clever method called **vectorization** that can be -used to speed up high level languages in numerical applications. +One method for avoiding memory traffic and type checking is [array programming](https://en.wikipedia.org/wiki/Array_programming). + +Economists usually refer to array programming as ``vectorization.'' + +(In computer science, this term has [a slightly different meaning](https://en.wikipedia.org/wiki/Automatic_vectorization).) The key idea is to send array processing operations in batch to pre-compiled and efficient native machine code. The machine code itself is typically compiled from carefully optimized C or Fortran. -For example, when working in a high level language, the operation of inverting a large matrix can be subcontracted to efficient machine code that is pre-compiled for this purpose and supplied to users as part of a package. +For example, when working in a high level language, the operation of inverting a +large matrix can be subcontracted to efficient machine code that is pre-compiled +for this purpose and supplied to users as part of a package. -This clever idea dates back to MATLAB, which uses vectorization extensively. +This idea dates back to MATLAB, which uses vectorization extensively. ```{figure} /_static/lecture_specific/need_for_speed/matlab.png @@ -297,30 +303,20 @@ in later lectures. (numba-p_c_vectorization)= ## Beyond Vectorization -At its best, vectorization yields fast, simple code. +At best, vectorization yields fast, simple code. However, it's not without disadvantages. One issue is that it can be highly memory-intensive. -For example, the vectorized maximization routine above is far more memory -intensive than the non-vectorized version that preceded it. - This is because vectorization tends to create many intermediate arrays before producing the final calculation. Another issue is that not all algorithms can be vectorized. -In these kinds of settings, we need to go back to loops. - -Fortunately, there are alternative ways to speed up Python loops that work in -almost any setting. - -For example, [Numba](http://numba.pydata.org/) solves the main problems with -vectorization listed above. - -It does so through something called **just in time (JIT) compilation**, -which can generate extremely fast and efficient code. +Because of these issues, most high performance computing is moving away from +traditional vectorization and towards the use of [just-in-time compilers](https://en.wikipedia.org/wiki/Just-in-time_compilation). -{doc}`Later ` we'll learn how to use Numba to accelerate Python code. +In later lectures in this series, we will learn about how modern Python libraries exploit +just-in-time compilers to generate fast, efficient, parallelized machine code. From a36dd5307756a4dc679578bc1c264310e59343dc Mon Sep 17 00:00:00 2001 From: mmcky Date: Mon, 28 Jul 2025 11:36:11 +1000 Subject: [PATCH 3/3] spell check --- lectures/about_py.md | 4 ++-- lectures/need_for_speed.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lectures/about_py.md b/lectures/about_py.md index 92aeee2b..61c450b0 100644 --- a/lectures/about_py.md +++ b/lectures/about_py.md @@ -134,7 +134,7 @@ Moreover, Python is extremely popular within the scientific community -- especia For example, the following chart from Stack Overflow Trends shows how the popularity of a single Python deep learning library -([PyTorch](https://pytorch.org/)) has grown over the last few yeras. +([PyTorch](https://pytorch.org/)) has grown over the last few years. ```{figure} /_static/lecture_specific/about_py/pytorch_vs_matlab.png @@ -512,7 +512,7 @@ mentioned above. * [Dask](https://docs.dask.org/en/stable/) for parallelization * [Numba](http://numba.pydata.org/) for making Python run at the same speed as native machine code * [CVXPY](https://www.cvxpy.org/) for convex optimization -* [scikit-image](https://scikit-image.org/) and [OpenCV](https://opencv.org/) for processing and analysing image data +* [scikit-image](https://scikit-image.org/) and [OpenCV](https://opencv.org/) for processing and analyzing image data * [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) for extracting data from HTML and XML files diff --git a/lectures/need_for_speed.md b/lectures/need_for_speed.md index 51d8bbec..dc9d7274 100644 --- a/lectures/need_for_speed.md +++ b/lectures/need_for_speed.md @@ -35,7 +35,7 @@ Python is popular for scientific computing due to factors such as * the popular [Anaconda Python distribution](https://www.anaconda.com/download), which simplifies installation and management of scientific libraries, and * the key role that Python plays in data science, machine learning and artificial intelligence. -In previous lectures, we looked at some scientific Python libaries such as NumPy and Matplotlib. +In previous lectures, we looked at some scientific Python libraries such as NumPy and Matplotlib. However, our main focus was the core Python language, rather than the libraries.