Python, NumPy, Matplotlib, SciPy, and SymPy
Johns Hopkins University
| Library | Purpose |
|---|---|
| NumPy | Array data structures and operations |
| SciPy | Numerical methods (optimization, integration) |
| Matplotlib | Data visualization |
| SymPy | Symbolic mathematics |
| Pandas | Data manipulation and analysis |
“We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” — Donald Knuth
Python determines types at runtime (dynamic typing):
Delegate operations to optimized C code.
Non-vectorized:
Vectorized:
NumPy generates, squares, and sums all at once in optimized C code.
Arrays automatically expand to compatible shapes:
MATLAB-style (implicit):
SciPy builds on NumPy for scientific computing:
scipy.stats - Statistical distributionsscipy.optimize - Optimization and root-findingscipy.integrate - Numerical integrationscipy.linalg - Linear algebra (extended)A fixed point satisfies \(x = g(x)\). Use fixed_point to find it:
SymPy provides symbolic mathematics in Python:
Unlike NumPy/SciPy which compute numerical values, SymPy manipulates mathematical expressions symbolically.
Python for Scientific Computing
NumPy
np.linalgMatplotlib
fig, ax = plt.subplots()SciPy
scipy.statsscipy.optimizescipy.integrateSymPy
expand(), factor(), solve()limit(), diff(), integrate()All lectures from QuantEcon: Python Programming for Economics and Finance

AS.440.624 Macroeconomic Modeling