Chapter 9. NumPy: Thinking in Arrays
At the core of most computational physics problems lives an array. From the physics side, arrays are a natural way to describe numerical and discretized problems. This is because geometry may be chopped up into tetrahedrons (pyramids) or hexahedrons (cubes), and arrays may be used to represent scalar or vector values that live at every point in three-dimensional space. Furthermore, operations on arrays can be used to represent or approximate calculus operations, such as integration or derivatives. From the software side, an array is a contiguous block of memory where every element has the same type and layout. From both a physical and a computational perspective, arrays are concise, beautiful, and useful.
Every programing language that is serious about scientific computing has a notion of an array data language, either built into the language’s core utilities or available as a third-party package. Since an array is essentially just a sequence of bits, the array data language adds semantics for handling arrays that are native to the host language while taking advantage of the fact that you know you have an unbroken sequence of bits.
Some languages, such as MATLAB and IDL, are centered around the array data language concept. Other general-purpose languages, such as Fortran, are meant for everyday programming but support powerful array constructs natively. In other generic languages, the reference array implementations come as projects external ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access