二、Python开发---31、numpy(6)

ndarray聚合函数

  聚合函数是对一组值(eg一个数组)进行操作,返回一个单一值作为结果的函数,当然聚合函数也可以指定对某个具体的轴进行数据聚合操作,常见的聚合操作有:平均值、最大值、最小值、方差等

import numpy as np
'''
    random模块
    rand  返回 0 - 1 随机值
    randn 返回一个样本具有标准正态分布
    randint 返回随机的整数,位于半开区间[low,hight)size = 10  (3,3)
    random_integers(low[, high, size])  返回随机的整数,位于闭区间
    random 返回随机浮点数
'''
a = np.array([[1,2,3,4],[7,8,9,10]])
print(a)                    #输出为 [[ 1  2  3  4]
                            #        [ 7  8  9 10]]
#amin返回最小值
print(np.amin(a,1))         #参数1 表示同行数据  输出为 [1 7]
print(np.amin(a,0))         #参数0 表示同列数据  输出为 [1 2 3 4]
#amax返回最大值
print(np.amax(a,1))         #输出为 [ 4 10]
print(np.amax(a,0))         #输出为 [ 7  8  9 10]
#mean平均值
print(np.mean(a))           #输出为 5.5
print(np.mean(a,0))         #求列平均值  输出为 [4. 5. 6. 7.]
print(np.mean(a,axis = 1))  #求行平均值  输出为 [2.5 8.5]
'''
    标准差:是与平均值的偏差的平方的平均值的平方根
    std = sqrt(mean((x-x.mean())**2))
    如果数组是[1,2,3,4] 则平均值是 2.5 因此偏差是[1.5,0.5,0.5,1.5],
    偏差的平方是[2.25,0.25,0.25,2.25]
    并且其平均值的平方根,即sqrt(5/4)
'''
arr2 = np.array([[1,2,3,4],[7,8,9,10]])
print(((arr2-arr2.mean())**2).sum()/arr2.size)  #平均值的偏差的平方的平均值  输出为 10.25
print(np.mean(((arr2-arr2.mean())**2)))         #平均值的偏差的平方的平均值  输出为 10.25
print(np.sqrt(((arr2-arr2.mean())**2).sum()/arr2.size)) #输出为 3.2015621187164243
print(np.sqrt(np.mean(((arr2-arr2.mean())**2))))        #输出为 3.2015621187164243
print(np.std(arr2,0))                           #同列    输出为 [3. 3. 3. 3.]
#方差是偏差的平方的平均值即mean(x-x.mean()**2)
arr3 = np.array([[1,2,3,4],[7,8,9,10]])
print(arr3-arr3.mean())                           #输出为 [[-4.5 -3.5 -2.5 -1.5]
                                                  #        [ 1.5  2.5  3.5  4.5]]
print(((arr3-arr3.mean())**2).sum()/arr3.size)    #输出为 10.25
print(np.mean((arr3-arr3.mean())**2))             #输出为 10.25
print(np.var(arr3))                               #输出为 10.25

排序函数

  NumPy中提供了各种排序相关功能, 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性,下表显示了三种排序算法的比较:

种类 

速度

最坏情况

工作空间

 稳定性

'quicksort'(快速排序) 

1

O(n^2) 

0

'mergesort'(归并排序) 

2

O(n*log(n))

~n/2

'heapsort'(堆排序) 

3

O(n*log(n)) 

0


 

 

 

 

  numpy.sort()——函数返回输入数组的排序副本
  numpy.sort(a,axis,kind,order)
    a :要排序的内容
    axis:默认为1,压着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序
    kind:默认为’quicksort’快速排序
    order:如果数组包含字段,则是要排序的字段

猜你喜欢

转载自www.cnblogs.com/lanzhijie/p/12381365.html