# 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])
```