數據分析之Numpy模塊下
阿新 • • 發佈:2019-01-18
維數 fun mat height 數據 -s script statistic 參數
三、ndarray的基本操作下部
5.切分
1. 與級聯類似,三個函數完成切分工作:
np.split(arr, 行/列號 ,軸):參數2是一個列表類型
np.vsplit 行切分
np.hsplit 列切分
示例:
創建一個二維數組
np.random.seed(10)
num_arr = np.random.randint(60,100,size=(5,6))
num_arr
結果:
array([[69, 96, 75, 60, 88, 85],
[89, 89, 68, 69, 60, 96],
[ 76, 96, 71, 84, 93, 68],
[96, 74, 73, 65, 73, 85],
[73, 88, 82, 90, 90, 85]])
根據索引去切片,0 表示行著切,1表示豎著切,[2,3]表示在索引為2和索引為3的時候個切一次
行著切:
np.split(num_arr,[2,3],axis=0)
結果:
[array([[69, 96, 75, 60, 88, 85],
[89, 89, 68, 69, 60, 96]]),
array([[76, 96, 71, 84, 93 , 68]]),
array([[96, 74, 73, 65, 73, 85],
[73, 88, 82, 90, 90, 85]])]
豎著切:
np.split(num_arr,[1,3],axis=1)
結果:
[array([[69],
[89],
[76],
[96],
[73]]), array([[96, 75],
[89, 68],
[96, 71],
[ 74, 73],
[88, 82]]), array([[60, 88, 85],
[69, 60, 96],
[84, 93, 68],
[65, 73, 85],
[90, 90, 85]])]
2.切分照片
導入一張照片
# 導入matplotlib.pyplot,並起別名為plt
import matplotlib.pyplot as plt
img_arr = plt.imread(‘./cat.jpg‘)
plt.imshow(img_arr)
結果:
2.1 行切分
# axis為0的時候,表示行切分
imgs = np.split(img_arr,[50,350],axis=0)
plt.imshow(imgs[1])
結果:
2.2 列切分
imgs = np.split(img_arr,[100,600],axis=1)
plt.imshow(imgs[1])
結果:
6.副本
所有賦值運算不會為ndarray的任何元素創建副本。對賦值後的對象的操作也對原來的對象生效。
可使用copy()函數創建副本
arr = np.array([1,2,3,4,5,6])
arr1 = arr.copy()
四、ndarray的聚合操作
1. 求和np.sum()
2. 最大最小值:np.max() / np.min()
3.平均值:np.mean()
創建一個二維數組
np.random.seed(10)
arr = np.random.randint(1,50,size=(3,4))
arr
求和
arr.sum()
最大值
arr.max()
最小值
arr.min()
平均值
arr.mean()
4.其他聚合操作
Function Name NaN-safe Version Description
np.sum np.nansum Compute sum of elements
np.prod np.nanprod Compute product of elements
np.mean np.nanmean Compute mean of elements
np.std np.nanstd Compute standard deviation
np.var np.nanvar Compute variance
np.min np.nanmin Find minimum value
np.max np.nanmax Find maximum value
np.argmin np.nanargmin Find index of minimum value
np.argmax np.nanargmax Find index of maximum value
np.median np.nanmedian Compute median of elements
np.percentile np.nanpercentile Compute rank-based statistics of elements
np.any N/A Evaluate whether any elements are true
np.all N/A Evaluate whether all elements are true
np.power 冪運算
五、廣播機制
【重要】ndarray廣播機制的三條規則:缺失維度的數組將維度補充為進行運算的數組的維度。
缺失的數組元素使用已有元素進行補充。
- 規則一:為缺失的維度補1(進行運算的兩個數組之間的維度只能相差一個維度)
- 規則二:缺失元素用已有值填充
- 規則三:缺失維度的數組只能有一行或者一列
示例1:
示例二:
示例三
六、ndarray的排序
1. 快速排序
np.sort()與ndarray.sort()都可以,但有區別:
np.sort()不改變輸入
ndarray.sort()本地處理,不占用空間,但改變輸入
示例:
2.部分排序 np.partition(a,k)
有的時候我們不是對全部數據感興趣,我們可能只對最小或最大的一部分感興趣。
當k為正時,我們想要得到最小的k個數 當k為負時,我們m想要得到最大的k個數
示例:
數據分析之Numpy模塊下