In this section, we address the methods NumPy offers for access and modification of data in an array. Python itself provides a rich set of indexing modes, and NumPy extends these with a number of methods suitable for numerical computations.
To access items of an array a, NumPy, as Python, uses the a[...] bracket notation. In the background, NumPy defines the __getitem__, __setitem__, and __deleteitem__ methods to do the requested operations on the array items. The arguments inside the brackets are expressions that specify the locations of the items we want to access. For example, to access the element at position (1,2) of the two-dimensional array a, we use the expression a[1,2]. Since indexing starts at 0, the expression refers to the item in the second row and third column of the array.