---
# System prepended metadata

title: 'Numpy #2 基本處理2'
tags: [python, 資料分析, numpy]

---

# Numpy #2 基本處理2

## 分割split

np.split(a, 分割數, axis=n)
np.vsplit(a, 分割數) 根據垂直軸切
np.hsplit(a, 分割數) 根據水平軸切
 分割數若為list如[a, b] 則分割成 0到a-1;a到b-1;b到最後 三塊，超出則回傳空陣列
 
## 迭代for
 
### 一維
 for i in a:
    print(i)
 印出所有元素
 多維想要印出元素可先扁平

### 多維
for row in b:
    print(row)
印出各列元素

## 搜尋極值

（以下用法固定，不可寫成np.max或a.amax之類的）
 np.amax(a)
 np.amin(a)
 a.max()
 a.min()
 可指定軸向找該軸向各自極值，沒有的話就是元素極值
 若設定 keepdims=True，結果會保留原陣列的維度來顯示
 
 ## 搜尋極值的索引
 
 np.argmax(a)
 np.argmin(a)
可以不寫軸（找全部極值，若多維會得到扁平之後的索引）
若指定軸，則列出該方向各自極值索引

## 搜尋指定條件where

np.where(條件)
 若被搜尋的陣列為多維，輸出的陣列必須分開看
 例如2X4矩陣a，條件輸入a>10
 輸出[0,0,1,2],[1,2,1,3]
 代表符合的索引是(0,1)(0,2)(1,1)(2,3)共四個
np.where(條件, "Y", "N") 
 直接輸出跟原來陣列一樣形狀的陣列，符合變成"Y"，不符合變成"N"
np.nonzero(a)
 等同上面且條件是a!=0

## 排序

np.sort(a) 排序 回傳值
np.argsort(a) 排序 回傳原來的索引
若用 a.sort() 則a會被覆蓋變成排序後的結果
若多維，可指定axis，依照該方向排序



###### tags: `資料分析` `numpy` `python` 