Python科学计算:用NumPy快速处理数据

创建数组

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
print(a.shape)
print(b.shape)
print(a.dtype)
print(b)

结构数组

import numpy as np

persontype=np.dtype({
    "names":["name","age","chinese","math","english"],
    "formats":["S32","i","i","i","f"]
})

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)

ages=peoples[:]["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))

连续数组的创建

import numpy as np

x1=np.arange(1,11,2) #初始值、终值、步长
x2=np.linspace(1,9,5)  #初始值、终值、元素个数
print(x1)
print(x2)

排序

import numpy as np

'''
sort(a, axis=-1, kind=‘quicksort’, order=None),默认情况下使 用的是快速排序;在 kind 里,可以指定 quicksort、mergesort、heapsort 分别表示快 速排序、合并排序、堆排序。
同样 axis 默认是 -1,即沿着数组的最后一个轴进行排序, 也可以取不同的 axis 轴,或者 axis=None 代表采用扁平化的方式作为一个向量进行排 序。
另外 order 字段,对于结构化的数组可以指定按照某个字段进行排序
'''
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))

算术运算

import numpy as np

x1=np.arange(1,11,2)
x2=np.linspace(1,9,5)

print(x1,x2)

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)) #求余数

统计函数

import numpy as np

a=np.array([[1,2,3],[4,5,6],[7,8,9]])

#计数组 / 矩阵中的最大值函数 amax(),最小值函数 amin()
print(np.amin(a))
print(np.amin(a,0))
print(np.amin(a,1))

print(np.amax(a))
print(np.amax(a,0))
print(np.amax(a,1))

#统计最大值与最小值之差 ptp()
print(np.ptp(a)) #统计数组中最大值与最小值的差,即 9-1=8
print(np.ptp(a,0)) #沿着 axis=0 轴的最大值与最小值之差,即 7-1=6(当然 8-2=6,9- 3=6,第三行减去第一行的 ptp 差均为 6)
print(np.ptp(a,1)) #沿着 axis=1 轴的最大值 与最小值之差,即 3-1=2(当然 6-4=2, 9-7=2,即第三列与第一列的 ptp 差均为 2)

#统计数组的百分位数 percentile()
'''
percentile() 代表着第 p 个百分位数,这里 p 的取值范围是 0-100,如果 p=0, 那么就是求最小值,如果 p=50 就是求平均值,如果 p=100 就是求最大值。同样你也可 以求得在 axis=0 和 axis=1 两个轴上的 p% 的百分位数
'''
print(np.percentile(a,50))
print(np.percentile(a,50,axis=0))
print(np.percentile(a,50,axis=1))

# 统计数组中的中位数 median()、平均数 mean()

# 求中位数
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))
print(np.average(a,weights=wts))

#统计数组中的标准差 std()、方差 var()
a=np.array([1,2,3,4])
print(type(a))
print(np.std(a))
print(np.var(a))

练习题:统计全班成绩

import numpy as np

persontype=np.dtype({
    "names":["name","chineses","englishs","maths"],
    "formats":["U10","i","i","i"]
})

peoples=np.array([
    ("张飞",66,65,30),
    ("关羽",95,85,98),
    ("赵云",93,92,96),
    ("黄忠",90,88,77),
    ("典韦",80,90,90)
    ],dtype=persontype)

# print(peoples)

'''
平均成绩、最小成绩、最大成绩、方差、标准差。
然后把这些人的总成绩 排序,得出名次进行成绩输出
'''
name=peoples[:]["name"]
chineses = peoples[:]['chineses']
englishs = peoples[:]['englishs']
maths = peoples[:]['maths']

#平均数
print("语文平均分: ",np.mean(chineses))
print("数学平均分: ",np.mean(maths))
print("英语平均分: ",np.mean(englishs))

#最小成绩
print("语文最小成绩: ",np.min(chineses))
print("英语最小成绩: ",np.min(englishs))
print("数学最小成绩: ",np.min(maths))

#最大成绩
print("语文最大成绩: ",np.max(chineses))
print("英语最大成绩: ",np.max(englishs))
print("数学最大成绩: ",np.max(maths))

#标准差
print("语文标准差: ",np.std(chineses))
print("英语标准差: ",np.std(englishs))
print("数学标准差: ",np.std(maths))

#方差
print("语文方差: ",np.var(chineses))
print("英语方差: ",np.var(englishs))
print("数学方差: ",np.var(maths))

#总成绩
print(peoples[:][:1])
print(np.sort())
peoples[:]['总成绩']=chineses+englishs+maths
print(peoples)

#总成绩进行排序
# total=peoples[:]['chineses']+peoples[:]['englishs']+peoples[:]['maths']

原文地址:https://www.cnblogs.com/hankleo/p/11703670.html

时间: 2024-10-09 17:49:24

Python科学计算:用NumPy快速处理数据的相关文章

linux中安装python科学计算环境-numpy、scipy、matplotlib、OpenCV...

http://blog.csdn.net/pipisorry/article/details/39902327 在Ubuntu中安装numpy.scipy.matplotlib.OpenCV等 和Python(x,y)不一样,在Ubuntu中需要手工安装科学计算的各个模块, 如何安装IPython, NumPy, SciPy, matplotlib, PyQt4, Spyder, Cython, SWIG, ETS, OpenCV: 在Ubuntu下安装Python模块通常可以使用apt-get

Python科学计算库-Numpy

科学计算库Numpy 处理数据 Year,WHO region,Country,Beverage Types,Display Value 1986,Western Pacific,Viet Nam,Wine,0 1986,Americas,Uruguay,Other,0.5 1985,Africa,Cte d'Ivoire,Wine,1.62 1986,Americas,Colombia,Beer,4.27 1987,Americas,Saint Kitts and Nevis,Beer,1.9

python科学计算之numpy

1.np.logspace(start,stop,num): 函数表示的意思是;在(start,stop)间生成等比数列num个 eg: import numpy as np print np.logspace(1,4,4) 结果为: [    10.    100.   1000.  10000.] 2. np.fromstring('admin',dtype=np.int8):函数的作用是将字符串装换成对应的ascii值 import numpy as np print np.fromstr

Linux下Python科学计算包numpy和SciPy的安装

系统环境: OS:RedHat5 Python版本:Python2.7.3 gcc版本:4.1.2 各个安装包版本: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lapack-3.4.2 atlas-3.10.0 依赖关系:scipy的安装需要依赖于numpy.lapack.atlas(后两者都是线性代数工具包),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的. 安装步骤: 1.安装nose 这个安装比

python 科学计算库NumPy—矩阵运算

NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而少用matrix来表示矩阵. 然后即可使用相关的矩阵运算了 import numpy as np a = [[1,2,3],[4,5,5],[4,5,5]] len = a.shape[0] #多维数组的行数 print(a.dtype) #输出元素类型 #另外也还可以使用切片方式来处理数组 然后是

python 科学计算库NumPy—tile函数

在学习knn分类算法的过程中用到了tile函数,有诸多的不理解,记录下来此函数的用法.   函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 其中A和reps都是array_like的参数,A可以是:array,list,tuple,dict,matrix以及基本数据类型int,string,float以及bool类型,reps的类型可以是tuple,list,dict,array,int,bool,但不可以是float,string,matrix类型. 计较常

windows下安装python科学计算环境,numpy scipy scikit等

背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器学习模块,包括分类.回归.聚类系列算法,主要算法有SVM.逻辑回归.朴素贝叶斯.Kmeans.DBSCAN等,目前由INRI 资助,偶尔Google也资助一点. SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化.线性代数.积分.插值.特殊函数.快速傅里叶变换.信号处理和图像处理.常微分方程求解和其他科学与工程中常用的计算.其功能与软件MA

Python科学计算之Pandas

Reference: http://mp.weixin.qq.com/s?src=3&timestamp=1474979163&ver=1&signature=wnZn1UtWreFWjQbpWweZXp6RRvmmKwW1-Kud3x6OF0czmyPqv*F6KzQ1i-dKhi4D-QvDjp1mFDdqAHLPrCLgMOb1KXJcbbkU5-QAREDarkCaPumjQlORzVAOma541S0X2MGgysuH18DI2567rBcTSkMHPsVf6sxClfB

Python科学计算函数库介绍

数值计算库 NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了这两个库,Python就有几乎和Matlab一样的处理数据和计算的能力了. NumPy和SciPy官方网址: http://www.scipy.org NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组.它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语

Python科学计算——Matplotlib

Matplotlib python科学计算系列 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. gallery展示页面的地址 简单介绍 该内容来自pyplot_tutorial官方文档 plt.pl