I Don't Like NumPy
a year ago
- #Python
- #Array Programming
- #NumPy
- NumPy is widely used for array computations in Python and influences machine learning libraries like PyTorch.
- NumPy makes simple operations elegant but struggles with more complex array manipulations, especially in higher dimensions.
- Broadcasting in NumPy can lead to non-intuitive behavior and requires careful dimension alignment.
- Advanced indexing in NumPy is complex and often leads to confusion, even among experienced users.
- Functions like np.linalg.solve have unclear conventions for handling multi-dimensional arrays.
- np.einsum is praised for its clarity and power in handling complex array operations.
- NumPy's design flaws stem from replacing explicit indices with broadcasting, leading to readability and usability issues.
- Multi-head attention in NumPy demonstrates the challenges of vectorizing operations without clear abstractions.
- The author proposes a prototype for a better array language that addresses NumPy's shortcomings.