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']
Python科学计算:用NumPy快速处理数据的更多相关文章
- Python科学计算库Numpy
Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...
- python科学计算之numpy
1.np.logspace(start,stop,num): 函数表示的意思是;在(start,stop)间生成等比数列num个 eg: import numpy as np print np.log ...
- python科学计算模块NumPy
NumPy是Numerical Python的简称,是高性能科学计算和数据分析的基础包.其实NumPy 本身并并没有提供太多的高级的数据分析功能, 但是理解NumPy数组以及面向数组的计算将有利于你更 ...
- python科学计算包numpy用法(一)
numpy是python中一个用来做科学计算的包,用起来十分方便,下面是我总结的numpy的用法: 1.如何创建矩阵 创建矩阵有很多种方法,主要包括以下几种: 通过array函数创建 >> ...
- python科学计算库numpy和绘图库PIL的结合,素描图片(原创)
# 导入绘图库 from PIL import Image #导入科学计算库 import numpy as np #封装一个图像处理工具类 class TestNumpy(object): def ...
- 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 lap ...
- [Python学习] python 科学计算库NumPy—矩阵运算
NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...
- Python科学计算库-Numpy
NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...
- Python 科学计算库numpy
Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数 # 多维数组ndarray import numpy as np ar ...
- [Python学习] python 科学计算库NumPy—tile函数
在学习knn分类算法的过程中用到了tile函数,有诸多的不理解,记录下来此函数的用法. 函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 其中A和reps都是ar ...
随机推荐
- VC++DLL动态链接库程序
VC++DLL动态链接库程序 VC++DLL动态链接库程序 C++ DLL 导出函数 使用VS2017等IDE生成dll程序,示例如下: C++ DLL 导出类 1.导出类中第一种方法:简单导出类(不 ...
- HMTL5滑动块研究
滑动块图片 html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012951123/article/details/36871955 <span style= ...
- SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
一.提示(Hint)概述 1为什么引入Hint? Hint是Oracle数据库中很有特色的一个功能,是很多DBA优化中经常采用的一个手段.那为什么Oracle会考虑引入优化器呢?基于代价的优化器是很聪 ...
- Python之基本的日期与时间转换 datetime、 dateutil模块
简单举例datetime模块 from datetime import timedelta,datetime a = timedelta(days=2, hours=6) b = timedelta( ...
- jq表单提交加正则验证
验证方法:姓名,手机,邮箱这些,鼠标点击移走用input的失去焦点blur事件.若为空,给input下方加提示消息. html: input框是引用bootstrap的css <div clas ...
- MariaDB 删除表
在本章中,我们将学习删除表. 表删除很容易,但记住所有删除的表是不可恢复的. 表删除的一般语法如下 - DROP TABLE table_name ; 存在执行表删除的两个选项:使用命令提示符或PHP ...
- setTimeout()和setInterval()的用法及区别
setInterval 方法表示每间隔一段时间执行一次函数,会一直执行下去,除非手动 clearInterval 来停止. var i = 10; var timer = setInterval(() ...
- oracle的查询结果按照in条件顺序输出
业务需要,通过lucene查出符合搜索条件的id,然后在详情表里查出这些id的详情 ? 1 SELECT id,QUESTION,QUESTIONCOMMENT FROM "ASKDBA_Q ...
- vue基础八
表单控件绑定 1.基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定.尽管有些神奇,但 v-model 本质上不过是语法糖,它负责监听用户的输入事件以更新数据,并特别处理一些极端 ...