Python Numpy 教程 | 奇客谷教程www.qikegu.com
章节Numpy 介绍
Numpy 安装
NumPy ndarray
NumPy 数据类型
NumPy 数组创建
NumPy 基于已有数据创建数组
NumPy 基于数值区间创建数组
NumPy 数组切片
NumPy 广播
NumPy 数组迭代
NumPy 位运算
NumPy 字符串函数
NumPy 数学函数
NumPy 统计函数
NumPy 排序、查找、计数
NumPy 副本和视图
NumPy 矩阵库函数
NumPy 线性代数
Numpy提供各种统计函数,用于数据统计分析。
从数组中找出最小和最大元素
函数numpy.amin()和numpy.amax()分别用于查找指定轴上,数组元素的最小值和最大值。
示例
import numpy as np
a = np.array([[2,10,20],[80,43,31],[22,43,10]])
print("原始数组:\n")
print(a)
print('\n')
print("数组中最小元素:", np.amin(a))
print("数组中最大元素:", np.amax(a))
print('\n')
print("数组列中最小元素:", np.amin(a,0))
print("数组列中最大元素:", np.amax(a,0))
print('\n')
print("数组行中最小元素:", np.amin(a,1))
print("数组行中最大元素:", np.amax(a,1))
输出
原始数组:
[[ 2 10 20]
[80 43 31]
[22 43 10]]
数组中最小元素: 2
数组中最大元素: 80
数组列中最小元素: [ 2 10 10]
数组列中最大元素: [80 43 31]
数组行中最小元素: [ 2 31 10]
数组行中最大元素: [20 80 43]
numpy.ptp()
返回数组某个轴方向的峰间值,即最大值最小值之差。
示例
import numpy as np
a = np.array([[2,10,20],[80,43,31],[22,43,10]])
print("原始数组:\n", a)
print('\n')
print("轴1 峰间值:", np.ptp(a,1))
print("轴0 峰间值:", np.ptp(a,0))
输出
原始数组:
[[ 2 10 20]
[80 43 31]
[22 43 10]]
轴1 峰间值: [18 49 33]
轴0 峰间值: [78 33 21]
numpy.percentile()
百分位数是统计中使用的度量,表示小于这个值的观察值占总数的百分比。
例如,第80个百分位数是这样一个值,它使得至少有80%的数据项小于或等于这个值,且至少有(100-80)%的数据项大于或等于这个值。
函数语法:
numpy.percentile(input, q, axis)
参数:input: 输入数组
q: 要计算的百分位数,在 0 ~ 100 之间
axis: 计算百分位数的轴方向,二维取值0,1
示例
import numpy as np
a = np.array([[2,10,20],[80,43,31],[22,43,10]])
print("原始数组:\n", a)
print('\n')
print("轴0 百分位数", np.percentile(a, 10,0))
print("轴1 百分位数", np.percentile(a, 10, 1))
输出
原始数组:
[[ 2 10 20]
[80 43 31]
[22 43 10]]
轴0 百分位数 [ 6. 16.6 12. ]
轴1 百分位数 [ 3.6 33.4 12.4]
计算数组项的中值、平均值、加权平均值
numpy.median()
中值是一组数值中,排在中间位置的值,可以指定轴方向。
numpy.mean()
计算数组的平均值,可以指定轴方向。
numpy.average()
计算数组的加权平均值,权重用另一个数组表示,并作为参数传入,可以指定轴方向。
考虑一个数组[1,2,3,4]和相应的权值[4,3,2,1],通过将对应元素的乘积相加,再除以权值的和来计算加权平均值。
加权平均值 = (14+23+32+41)/(4+3+2+1)
示例
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print("原始数组:\n", a)
print('\n')
print("轴0 中值:", np.median(a, 0))
print("轴0 平均值:", np.mean(a, 0))
wt = np.array([0, 0, 10])
print("轴1 加权平均值:", np.average(a, 1, weights = wt))
输出
原始数组:
[[1 2 3]
[4 5 6]
[7 8 9]]
轴0 中值: [4. 5. 6.]
轴0 平均值: [4. 5. 6.]
轴1 加权平均值: [3. 6. 9.]
标准差与方差
numpy.std()
要计算标准差,可以使用std()函数。
标准差的公式:
std = sqrt(mean(abs(x - x.mean())**2))
numpy.std()
要计算方差,可以使用var()函数。
方差公式
var = mean(abs(x - x.mean())**2)
示例
import numpy as np
print (np.std([1,2,3,4]))
print (np.var([1,2,3,4]))
输出
1.118033988749895
1.25