NumPy的基本用法
NumPy简介:
NumPy是高性能科学计算和数据分析的基础包。是pandas等其他各种工具的基础
NumPy主要功能:
ndarray,一个多维数组结构,高效且节省空间
无需循环对数组数据进行快速运算的数学函数
线性代数、随机数生成和傅里叶变换功能
安装方法:
pip3 install numpy
引用方式:
import numpy as np
例如:已知若干家跨国公司的市值(美元),将其转换为人民币
a = [ramdom.uniform(1000.0, 2000.0), for i in range(50)]
dic = 6.8
a=np.array(a)
a*dic //得出结果
例如:已知购物车的商品价格和商品数量求商品总金额
price = [ramdom.uniform(100.0, 200.0), for i in range(50)]
quantity=[ramdom.randint(1,10), for i in range(50)]
price=np.array(price)
quantity=np.array(quantity)
price*quantity //每个商品总价 每一项分别相乘
price*quantity.sum() //所有商品总价
ndarray方法:
np.array(array_like) //转化为多维数组,数组对象内元素类型必须相同,数组大小不可更改
a = np.array(range(20))
1、a.dtype //存的数据的类型
ndarray数据类型
布尔型:bool_
整型:int_ int8 int16 int32 int64 //数字表示位
无符号整型:uint8 uint16 uint32 uint64 //只表示0和正数
浮点:float_ float16 float32 float64
复数:complex_ complex64 complex128
2、a.size //返回个数
3、a=np.array([ [1,2,3], [4,5,6] ]) //二维数组"一张纸"
a=np.array([ [1,2,3], [4,5,6] ],
[ [7,8,9], [10,11,12] ]) //三维数组"一个本"
a.shape //二维返回行列,三维返回行列厚
4、a.T //行转列
5、a.ndim //查看维数
ndarray创建:
1、np.zeros(10,dtype='int') //10个0,默认是float
np.ones(10) //10个0
a=np.empty(100) //随机值,之前内存的残值。要确认以后会赋值就用这个
np.arange(2,100,3)//起始值,结束值,步长,步长可为小数
np.linspace(0,100,101) //[起始值,结束值],个数。等差数列
np.arange(15),reshape((3,5)) //15个数变成3行5列的二维数组
ndarray运算:
向量:ndarray
标量:1,2,3,4等
ndarray可以和标量运算:
ndarray可以和ndarray运算:+-*/><
ndarray索引:
一维数组: a[0] a[1] a[2]
二维数组:a[0][0] a[0,0]
ndarray切片:
一维数组切片:
a[0:4:2] //开始位置,结束位置,步长
ndarray切片 和 普通列表切片有什么不同?
ndarray切片默认是原数组的引用,修改切片会导致原数组修改
除非使用:a[0:4].copy()才复制一份
二维数组切片:
例如a=np.array([ [1,2,3], [4,5,6] ])
切1,2,4,5逗号左边是行右边是列
a[0:2,0:2]
ndarray布尔型索引:
例如:给一个数组,选出数组中所有大于5的数
a=np.arange(10)
a[a>5]
原理://先执行a>5得到布尔数组,
//布尔索引:把同样大小的布尔数组传进索引,这样把a里对应为True的返回
例如:选出数组中大于5的偶数
a[(a>5) & (a%2==0)] //用&要加括号,不加报错
a[(a>5) | (a%2==0)] //或
ndarray花式索引:
一维数组
a = np.arange(20)
取出1,3,4,6,7位置的值
b=[1,3,4,6,7]
a[b]
二维数组
a[0,2:3] 第一行切片
a[0:a[0]>2] 第一行大于2的
a[[1,3],:][:,[1,3]] 取1,3行中的1,3列
NumPy通用函数
能同时对数组中所有元素进行运算
通用函数:
np.abs
np.sqrt
np.ceil 向上取整
np.floor 向下取整
np.round<==>np.rint 向外取整
np.trunc 向0取整
np.modf x,y=np.modf(a) x是小数部分,y是整数部分
NAN:不是数字,不等于任何浮点数,也不等于自己 0/0 sqrt(-1)
INF:比任何浮点数都大 np.inf==np.inf为真 5/0
怎样判断结果集b里有没有NAN?[nan,1.]
np.isnan(b) [True,False] # 判断有没有NAN
b[~(np.isnan(b))] # 删除NAN
怎样过滤c中的INF?
c[c!=np.inf] 或 c[np.isinf(c)]
二元函数:
np.maximum(a, b) # 一一对应取出最大的
np.minmum(a, b) # 一一对应取出最小的
求和:
a.sum() # 对a中所有的求和
a.mean() # 求平均值
a.var() # 求方差 表示数据的离散程度,越高表示离散程度越高
a.std() # 求标准差。通过方差开方得到。
a.min() # 返回最小值
a.max() # 返回最大值
a.argmax() # 返回最大值的下标
a.argmin() # 返回最小值的下标
NumPy随机数生成:
np.random.randint(0, 10, 30) #生成30个0~10范围的数
np.random.randint(0, 10, (3,5,6)) # 生成三维数组(3,5,6)
np.random.rand(10) # 返回10个0~1的数
np.random.choice([1,2,3,4,5], 10) # 返回列表中的数,共10个
np.random.uniform(2.0, 4.0, 10) # 返回10个2.0~4.0的浮点数,平均分布
NumPy的基本用法的更多相关文章
- Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)
Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...
- Numpy的简单用法
Numpy的简单用法 import numpy as np 一.创建ndarray对象 列表转换成ndarray: >>> a = [1,2,3,4,5] >>> ...
- numpy中线性代数用法
numpy中线性代数用法 矩阵乘法 >>> import numpy as np >>> x=np.array([[1,2,3],[4,5,6]]) >> ...
- numpy.asmatrix的用法
学习的过程中,遇到了asmatrix的用法,看了一下官方文档,明白了. numpy.asmatrix numpy.asmatrix(data, dtype=None)[source] Interpre ...
- 数据科学:numpy.where() 的用法
原文出处:numpy.where() 用法讲解 原创作者:massquantity numpy.where() 有两种用法: 1. np.where(condition, x, y) 满足条件(con ...
- Py修行路 NumPy模块基本用法
NumPy系统是Python的一种开源的数值计算扩展,一个用python实现的科学计算包.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结 ...
- Numpy的基础用法
1.用Numpy创建数组 numpy.array(object):创建数组,与array.array(typecode[, initializer])不同,array.array()只能创建一维数组 ...
- numpy.random模块用法总结
from numpy import random numpy.random.uniform(low=0.0, high=1.0, size=None) 生出size个符合均分布的浮点数,取值范围为[l ...
- anaconda及jupyter notebook的使用之numpy模块的用法(2)
今日内容概要 numpy模块结束 ndarray创建 numpy内置方法 索引与切片(花式索引.布尔索引) 常用函数 统计方法 随机数 numpy的内置方法 import numpy as np 1. ...
- numpy.random模块用法小结
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...
随机推荐
- 【Java入门提高篇】Java集合类详解(一)
今天来看看Java里的一个大家伙,那就是集合. 集合嘛,就跟它的名字那样,是一群人多势众的家伙,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体.集合就是用来存放和管理其他类对象 ...
- Linux ftrace框架介绍及运用
目录: 1. ftrace背景 2. 框架介绍 3. 主要代码分析 4. ftrace的配置和使用 5. ftrace相关工具 在日常工作中,经常会需要对内核进行Debug.或者进行优化工作.一些简单 ...
- Oracle解锁scott账号
在安装Oracle的最后一步,有一个口令管理的操作,当时忘了给scott账号解锁了(Oracle为程序测试提供的一个普通账户,口令管理中可以对数据库用户设置密码,默认是锁定的).现在想给scott这个 ...
- 【最小生成树+子集枚举】Uva1151 Buy or Build
Description 平面上有n个点(1<=N<=1000),你的任务是让所有n个点连通,为此,你可以新建一些边,费用等于两个端点的欧几里得距离的平方. 另外还有q(0<=q< ...
- BZOJ_1367_[Baltic2004]sequence_结论题+可并堆
BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...
- BZOJ_1861_[Zjoi2006]Book 书架_splay
BZOJ_1861_[Zjoi2006]Book 书架_splay 题意: 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在 ...
- 作为比湖南还火的python网红,零基础要如何系统的开始学习呢?
Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...
- java web 在线聊天的基本实现
随着互联网的发展,http的协议有些时候不能满足需求,比如在现聊天的实现.如果使用http协议必须轮训,或者使用长链接.必须要一个request,这样后台才能发送信息到前端. 后台不能主动找客户端通信 ...
- GIT的使用流程
GIT的使用流程 1 github注册流程 1 进入github官网:https://github.com/ 2 注册一个自己的github账号 3 右上角选择New repository 4 进入c ...
- Pc与移动端的测试异同性
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...