四时宝库

程序员的知识宝库

Python数据分析学习笔记7——NumPy数组运算(统计函数)

函数

说明

sum()

求和

max()

求最大值

min()

求最小值

median()

求中位数

mean()

求平均数

var()

求方差

std()

求标准差


求和

语法:numpy.sum(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列和,1沿横轴操作,求行和
  • 省略axis参数,表示对所有元素进行求和
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr1 = np.array([3,4,5,6,7,8])
print('arr1:\n',arr1)
print('求和:\n',np.sum(arr1))


print('二维数组')
arr2 = np.array([[3,4,5],[6,7,8]])
print('arr2:\n',arr2)
print('列求和:\n',np.sum(arr2,axis = 0))
print('行求和:\n',np.sum(arr2,axis = 1))
print('总和:\n',np.sum(arr2))




求最大值,最小值

语法:

  • numpy.max(arr,axis =n)
  • numpy.min(arr,axis =n)
  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列最值,1沿横轴操作,求行最值
  • 省略axis参数,表示求所有元素最值
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr1 = np.array([3,4,5,6,7,8])
print('arr1:\n',arr1)
print('最大值:\n',np.max(arr1))
print('最小值:\n',np.min(arr1))

print('二维数组')
arr2 = np.array([[3,4,5],[6,7,8]])
print('arr2:\n',arr2)
print('列最大值:\n',np.max(arr2,axis = 0))
print('列最小值:\n',np.min(arr2,axis = 0))
print('行最大值:\n',np.max(arr2,axis = 1))
print('行最小值:\n',np.min(arr2,axis = 1))

print('数组最大值:\n',np.max(arr2))
print('数组最小值:\n',np.min(arr2))



求中位数

中位数(Median)又称中值,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。

语法:numpy.median(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列中位数,1沿横轴操作,求行中位数
  • 省略axis参数,表示对所有元素进行求中位数
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr1 = np.array([23,54,35,16,67,88])
print('arr1:\n',arr1)
print('中位数:\n',np.median(arr1))


print('二维数组')
arr2 = np.array([[23,54,35],[16,67,88]])
print('arr2:\n',arr2)
print('列中位数:\n',np.median(arr2,axis = 0))
print('行中位数:\n',np.median(arr2,axis = 1))
print('总中位数:\n',np.median(arr2))



求平均数

语法:numpy.mean(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列平均数,1沿横轴操作,求行平均数
  • 省略axis参数,表示对所有元素进行求平均数
import numpy as np

print('一维数组')
arr1 = np.array([23,54,35,16,67,88])
print('arr1:\n',arr1)
print('平均数:\n',np.mean(arr1))


print('二维数组')
arr2 = np.array([[23,54,35],[16,67,88]])
print('arr2:\n',arr2)
print('列平均数:\n',np.mean(arr2,axis = 0))
print('行平均数:\n',np.mean(arr2,axis = 1))
print('总平均数:\n',np.mean(arr2))



求方差

方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。

方差是衡量源数据和期望值相差的度量值。

语法:numpy.var(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列方差,1沿横轴操作,求行方差
  • 省略axis参数,表示对所有元素进行求方差
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr1 = np.array([23,54,35,16,67,88])
print('arr1:\n',arr1)
print('方差数:\n',np.var(arr1))

print('二维数组')
arr2 = np.array([[23,54,35],[16,67,88]])
print('arr2:\n',arr2)
print('列方差数:\n',np.var(arr2,axis = 0))
print('行方差数:\n',np.var(arr2,axis = 1))
print('总平方差数:\n',np.var(arr2))



求标准差

标准差(Standard Deviation) ,数学术语,是离均差平方的算术平均数(即:方差)的算术平方根,用σ表示。标准差也被称为标准偏差,或者实验标准差,在概率统计中最常使用作为统计分布程度上的测量依据。

标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。

语法:numpy.std(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列方差,1沿横轴操作,求标准差
  • 省略axis参数,表示对所有元素进行求标准差
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr1 = np.std([23,54,35,16,67,88])
print('arr1:\n',arr1)
print('标准差:\n',np.std(arr1))


print('二维数组')
arr2 = np.array([[23,54,35],[16,67,88]])
print('arr2:\n',arr2)
print('列标准数:\n',np.std(arr2,axis = 0))
print('行标准数:\n',np.std(arr2,axis = 1))
print('总标准差数:\n',np.std(arr2))



求加权平均数

加权平均,统计学术语,在加权平均中,每个数据点都有一个对应的权重值,该权重值决定了数据点在计算平均值时的重要程度。通过相乘各个数据点的值与权重值,并将结果求和后再除以所有权重值的总和,就可以得到加权平均值。

在一组数据中,一个数据出现的次数称为“权”,将所有数据乘以他们对应的出现次数,然后加起来得到一个总和,最后用总和除以这一组数据的个数,得到的结果就是加权平均数。

语法:numpy.average(arr,axis =n)

  • axis = n 表示沿着那条轴进行操作,0 沿纵轴操作,求列方差,1沿横轴操作,求标准差
  • 省略axis参数,表示对所有元素进行求加权平均数
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr = np.array([10,20,30,10,20,40])
print('加权平均数:',np.average(arr))
#分析 (10*2+20*2+30+40)/6


print('二维数组')
arr2 = np.array([[10,20,30,10],[10,30,40,10],[10,20,30,10]])

print('列加权平均数:\n',np.average(arr2,axis = 0))
print('行加权平均数:\n',np.average(arr2,axis = 1))
print('所有加权平均数:\n',np.average(arr2))



求百分位数

如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。

语法:numpy.percentile(arr,q,axis =n)

  • axis = n 表示沿着那条轴进行操作
  • q是一个百分比
# -*- coding:utf-8 -*-
import numpy as np

print('一维数组')
arr = np.array([10,20,30,50,40,60])
print('第0百分位数:',np.percentile(arr,0))
print('第50百分位数:',np.percentile(arr,50))
print('第100百分位数:',np.percentile(arr,100))
#对数组从小到大排序  [10,20,30,40,50,60]

print('二维数组')
arr2 = np.array([[10,20,30,50],[40,60,70,80]])

print('列的第50百分位数:\n',np.percentile(arr2,50,axis = 0))
print('行的第50百分位数:\n',np.percentile(arr2,50,axis = 1))
print('所有元素的第50百分位数:\n',np.percentile(arr2,50))



求众数

众数(Mode)是指在统计分布上具有明显集中趋势点的数值,代表数据的一般水平。 也是一组数据中出现次数最多的数值,有时众数在一组数中有好几个

NumPy没有提供直接求众数的函数,可以使用bincount()和 argmax()来实现

# -*- coding:utf-8 -*-
import numpy as np


arr = np.array([10,20,30,50,10,20])
count = np.bincount(arr)
print(count)
mode = np.argmax(count)
print(mode)



学习参考资料:《从0到1Python数据分析》

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接