> 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/2133numpy-operations.md).

# 2.1.3.3.Numpy Operations

## 1.使用library

```
import numpy as np
```

## 2.基本概念

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

* 相同維度陣列的每個元素都可以加減乘除
  * 除的時候要注意分母不可以為零

    ```
    arr + arr
    arr - arr
    arr * arr
    arr / arr
    ```
  * 將陣列中的每個元素次方

    ```
    arr ** 2
    ```
* 將陣列中的每個元素次方根

  ```
  np.sqrt(arr)
  ```
* 將陣列中的每個元素取指數, 對數

  ```
  np.exp(arr)
  np.log(arr)
  ```
* 將陣列中的每個元素取sin

  ```
  np.sin(arr)
  ```

## 3.Numpy的基本操作

* 1.重新指定陣列的維度
  * e.g., 將一維陣列重新分配成5 \* 5的陣列

    ```
    arr = np.arrange(25)
    #重新分配成5 * 5的陣列
    arr.reshape(5, 5)
    ```
* 2.最大值

```
ranarr = np.random.randint(1, 100, 10)
# 等意於np.max(ranarr)
ranarr.max()
```

* 3.最小值

```
ranarr = np.random.randint(1, 100, 10)
ranarr.min()
```

* 4.最大值的索引值

```
ranarr = np.random.randint(1, 100, 10)
ranarr.argmax()
```

* 5.陣列維度

```
arr.shape
```

* 6.條件選擇

```
arr = np.arange(0, 11)
#留下 > 5的值, 將會得到boolean的陣列
bool_arr = arr > 5
#等意於arr[arr>5]
arr[boo_arr]
```

* 7.總和
  * 一維陣列

    ```
    arr.sum()
    ```
  * 二維陣列
    * 計算每個column的總和

      ```
      arr.sum(axis=0)
      ```
