蓝绝

博客园 首页 新随笔 联系 订阅 管理

3.其他聚合操作

Function Name NaN-safe Version Description

np. sum          np. nansum            Compute sum of elements     #求和

np. prod           np. nanprod     Compute product of elements    #求乘积

пр. 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    #求百分位数

пp, any                 N/A Evaluate whether any elements are true                          #any 检测一个B0OL数组中,是否全少存在一个True

np. all                    N/A Evaluate whether all elements are true                          #all 检测一个B0OL数组中,是否全为True

np. power 幕运算

--------------------------------------------------------------------------------------------

最大值和最小值

 

пp.any()和пp.all()

#any 检测一个B0OL数组中,是否全少存在一个True

#all 检测一个B0OL数组中,是否全为True

bool_list=np.array([False, False, False, False])

bool_list.any() 

    #运行输出  

         False

bool_list.all()

  #运行输出  

         False

 

#求百分位数

data = np. arange (0, 11, step=1)
data
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
#第一个参数是要求百分位数的数据
#第二个参数是要求的百分位的位置
#异常值检测会使用Q1 Q3|
np.percentile(data, [0.25, 0.75])
array([0.025, 0.075])

 

五、ndarray的矩阵操作

1.基本矩阵操作

   1)算术运算符:
   .加减乘除

    2)矩阵积np.dot()

a = np.array([[1, 2], [3, 4]]) 
b = np.array([[1, 1], [2, 2]]) 
display(a,b)
array([[1, 2],
       [3, 4]])
array([[1, 1],
       [2, 2]])
#单纯的数学运算
a+b
array([[2, 3],
       [5, 6]])
#数学矩阵运算  加减运算与单纯的数学运算相同,乘不同
np.dot(a,b)
array([[ 5,  5],
       [11, 11]])

 

2.广播机制   # 意思是维度不同,用相同值补充维度

【重要】 ndarray广播机制的两条规则.
       规则一:为缺失的维度补1

       规则二:假定缺失元素用已有值填充

 

#numpy的广播机制,自动按已有的值填充没有的维度
arr12=np.array([1,2,3,4,5])
arr13=3        #0维,自动填充成1维  [1,1,1,1,1]
arr12+arr13
array([4, 5, 6, 7, 8])

  

六、ndarray的排序

小测验:使用以上所学numpy的知识,对一个ndarray对象进行冒泡排序。def bubleSort(x):代码越短越好

1.快速排序np.sort()与ndarray.sort()都可以,但有区别:

          np.sort(X)不改变输入

          X.sort()本地处理,不占用空间,但改变输入

data=np.random.permutation(10)
data
array([7, 0, 4, 8, 1, 3, 6, 5, 2, 9])
#排序后,直接更改原来数组的数据位置
data.sort()
data
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#不改变原来数组的东西
np.sort(data)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

2.部分排序    意思需要几个数排几个数,其他部分数据不变,不用全部排序

np.partition(a,k)

有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。

当k为正时,我们想要得到最小的k个数.
当k为负时,我们想要得到最大的k个数

data=np.random.permutation(10000)
data
array([6786, 6237, 8908, ..., 9190,  754, 5495])
#当k为正时,我们想要得到最小的k个数.
np.partition(data,4)[:4]   #排完最前面几个数据在4的范围后,[:4]切片数据
array([1, 0, 2, 3])
#当k为负时,我们想要得到最大的k个数  
np.partition(data,-4)[-4:]   #排完最后面几个数据在-4的范围后,[-4:]切片数据
array([9996, 9998, 9999, 9997])

 

posted on 2022-11-13 15:53  蓝绝  阅读(20)  评论(0编辑  收藏  举报