python科学计算: numpy库的使用
我们先来看看结构
定义就不多说了,我们一一展开内容
ndarry数组
创建数组:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b[1,1]=10#将1轴1行的数字替换为10
print (a.shape)
print (b.shape)
print (a.dtype)
print (b)
得到结果
(3L,)
(3L, 3L)
int32
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
shape表示获得数组大小,
dtype表示获得数组的属性;
结构数组
import numpy as np
persontype = np.dtype({
'names':['name', 'age', 'chinese', 'math', 'english'],
'formats':['S32','i', 'i', 'i', 'f']})#用字典的方法定义dtype
peoples = np.array([("ZhangFei",32,75,100, 90),("GuanYu",24,85,96,88.5),
("ZhaoYun",28,85,92,96.5),("HuangZhong",29,65,85,100)],
dtype=persontype)#定义array时用dtype=persontype来引入结构
ages = peoples[:]['age']#查询age这一特征的所有数据
chineses = peoples[:]['chinese']
maths = peoples[:]['math']
englishs = peoples[:]['english']
print np.mean(ages)
print np.mean(chineses)
print np.mean(maths)
print np.mean(englishs)
运行结果
28.25
77.5
93.25
93.75
ufunc运算
x1 = np.arange(1,11,2)#1为三个参数分别为(起始值,终值,步长)
x1 = np.arange(1,11,2)
x2 = np.linspace(1,9,5)
print np.add(x1, x2)#加
print np.subtract(x1, x2)#减
print np.multiply(x1, x2)#乘
print np.divide(x1, x2)#除
print np.power(x1, x2)#求n次方
print np.remainder(x1, x2)#求余
运行结果
[ 2. 6. 10. 14. 18.]
[0. 0. 0. 0. 0.]
[ 1. 9. 25. 49. 81.]
[1. 1. 1. 1. 1.]
[1.00000000e+00 2.70000000e+01 3.12500000e+03 8.23543000e+05
3.87420489e+08]
[0. 0. 0. 0. 0.]
统计函数最大最小max(),min()
import numpy as np
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.amin(a)#最小值也可以用直接用min
print np.amin(a,0)#0轴的最小值,在[1,4,7]中选择最小值
print np.amin(a,1)#在1轴中选择最小值,在[1,2,3]中选最小值
print np.amax(a)
print np.amax(a,0)
print np.amax(a,1)
运行结果
1
[1 2 3]
[1 4 7]
9
[7 8 9]
[3 6 9]
统计最大值与最小值之差 ptp()
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.ptp(a)#9-1=8
print np.ptp(a,0)#7-1=6
print np.ptp(a,1)#3-1=2
运行结果
8
[6 6 6]
[2 2 2]
统计数组的百分位数 percentile()
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.percentile(a, 50)#50%的位置上是什么数字
print np.percentile(a, 50, axis=0)
print np.percentile(a, 50, axis=1)
统计数组中的中位数 median()、平均数 mean()
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
# 求中位数
print np.median(a)
print np.median(a, axis=0)
print np.median(a, axis=1)
# 求平均数
print np.mean(a)
print np.mean(a, axis=0)
print np.mean(a, axis=1)
统计数组中的加权平均值 average()
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print np.average(a)#(1+2+3+4)/4=2.5
print np.average(a,weights=wts)# (1*1+2*2+3*3+4*4)/(1+2+3+4)=3.0
统计数组中的标准差 std()、方差 var()
a = np.array([1,2,3,4])
print np.std(a)
print np.var(a)
排序问题
sort(a, axis=-1, kind=‘quickso’,order=None)
a = np.array([[4,3,2],[2,4,1]])
print np.sort(a)
print np.sort(a, axis=None)
print np.sort(a, axis=0)
print np.sort(a, axis=1)