> For the complete documentation index, see [llms.txt](https://jen-hsuan-hsieh.gitbook.io/python/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jen-hsuan-hsieh.gitbook.io/python/chapter-2courses/21python-for-data-science-and-machine-learning-bootcamp/213python-for-data-analysis-numpy/2132numpy-array-indexing.md).

# 2.1.3.2.Numpy Array Indexing

## 1.使用library

```
import numpy as np
```

## 2.選取陣列元素

```
arr = np.arange(0, 11, 2)
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
```

* 選取單一元素

```
arr[7]
# row, column
# 或是arr_2d[0, 0]
arr_2d[0][0]
```

* 選取一段範圍的值
  * 最小值(包含), 最大值(不包含)

    ```
    arr[0:5]
    ```
  * 從頭開始, 從尾開始選取陣列

    ```
    arr[:9]
    arr[9:]
    arr_2d[:2, 1:]
    ```

## 3.Numpy Array與Python array不同之處

* Broadcast
  * 對陣列的一小段做操作會改變原始陣列的值, e.g.,

    ```
    In : arr[0:2] = 100
    Out: array([100, 100,   4,   6,   8,  10])
    ```
  * 以切割陣列為例:

    ```
    slice = arr[0:2]
    slice[:] = 33
    arr
    Out: array([33, 33,  4,  6,  8, 10])
    ```
  * 但copy()不會影響到原始陣列
