---
# System prepended metadata

title: numpy

---

# numpy
簡單來說，numpy目前都是在處理"陣列"，超級方便的處理陣列方法!!



 **#8 numpy的array合併**

  「垂直合併」的函式
``` python=
np.vstack()
```

``` python=
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
         
print(np.vstack((A,B)))    # vertical stack
"""
[[1,1,1]
 [2,2,2]]
"""
```

「水平合併」的函式
   
``` python=
np.hstack() 
```

``` python=
D = np.hstack((A,B))       # horizontal stack

print(D)
# [1,1,1,2,2,2]

print(A.shape,D.shape)
# (3,) (6,)
```

另外還有兩個函式，就先不詳細解釋了
``` python=
np.newaxis() 
```
``` python=
np.concatenate()
```







**#9 numpy的array分割**

  「縱向分割」的函式
``` python=
print(np.split(A, 2, axis=1))
"""
[array([[0, 1],
        [4, 5],
        [8, 9]]),
array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]
"""
```


  「橫向分割」的函式
``` python=
print(np.split(A, 3, axis=0))

# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
```


**#10 numpy的 copy & deep copy**
簡言之，就是討論「有無關聯性的複製」
copy() 的賦直方式沒有關連性
``` python=
b = a.copy()    # deep copy
print(b)        # array([11, 22, 33,  3])
a[3] = 44
print(a)        # array([11, 22, 33, 44])
print(b)        # array([11, 22, 33,  3])
```



