2.掌握numpy数组
一.改变数组形态
reshape()——通过改变数组的维度改变数组形态
import numpy as np
Array=np.arange(1,17,1)
Array
Array_1=np.arange(1,17,1).reshape(4,4) #将数据从(16.)变为(4,4)
Array_1
Array_2=np.arange(1,17,1).reshape(4,2,2)#将数据从(16.)变为(4,2,2)
Array_2
展平
flatten()flatten('F')——对数组进行横向或纵向展平
Array_1.flatten() #横向展平
Array_1.flatten('F') #纵向展平
切割
split(数组,分割轴,axis=0/1)——对数组进行横向或纵向切割
Array_a1,Array_b1=np.split(Array_1,2) #axis=0 进行横向切割
print(Array_a1,'\n\n',Array_b1)
Array_a2,Array_b2=np.split(Array_1,2,axis=1) #axis=0 进行纵向切割
print(Array_a2,'\n\n',Array_b2)
组合
concatenate((数组1,数组2,….,数组3),aixs=0/1)对多个数组进行横或纵组合
np.concatenate((Array_1,Array_b1,Array_a1)) #aisx=0 进行横向组合
np.concatenate((Array_1,Array_b2,Array_a2),axis=1) #aisx=0 进行横向组合
二.ufunc数组通用运算规律
四则运算+幂运算
Array_1+Array_1 #加法
Array_1-Array_1 #减法
Array_1*Array_1 #乘法
Array_1/Array_1 #除法
Array_1**2 #幂运算
比较运算
Array_3=Array_1*2
print(Array_1>Array_3,'\n\n',Array_1>=Array_3) #> ,>=
print(Array_1<Array_3,'\n\n',Array_1<=Array_3) #< ,<=
Array_1==1
逻辑运算
NumPY中 all 表示逻辑and,any表示逻辑or
print([[1,2,3]]and[[1,0,2,3]])
np.all([[1,2,3]]==[[1,0,2,3]])
print([[1,2,3]]or[[1,0,2,3]])
np.any([[1,2,3]]==[[1,0,2,3]])
广播机制
在进行数组结构不相同的运算时
1.让所有输入数组向最长的数组看齐,shape(结构)不足的用1补齐
2.输出数组shape是输入数组shape各轴上的最大值
3.当数组之间某个轴相同,或一个=1。时可以运算,否则报错
4.当某个轴长度为1,沿这个轴使用轴上第一个数组
a=np.array([1,1,1])
b=np.array([[1],[2],[3]])
print(a,'\n\n',b)
a+b
三.随机数
random
NumPy中提供了random模块可以生成多种类型,概率的随机数
随机数生成
1.random(元素个数)——随机生成小于1的数
np.random.random(10)
2.rand(轴0,轴1,...轴n)——生成均匀分布的随机数
np.random.rand(2,2)
3.randn(轴0,轴1,...轴n)——生成服从正态分布的随机数
np.random.randn(2,2,2)
4.randint(起始值,终值,size=[轴0,轴1,...轴n])——生成复合范围内的随机数
np.random.randint(1,5,[2,2,2])
数组轴的随机数
1.shuffle(数组)——对轴0随机排序,并改变数组
c=np.array([[1,2,3],[4,5,6],[7,8,9]])
c
np.random.shuffle(c)
c
2.permutation(数组)——对轴0改变,但不改变数组
c=np.array([[1,2,3],[4,5,6],[7,8,9]])
c
np.random.permutation(c)
随机数种子
seed (int)——定义随机数的种子,得到初始固定的随机数
np.random.seed(10)
np.random.rand(3,3)
np.random.seed(10)
np.random.rand(3,3)
四.统计分析
排序
sort()——改变原数组,横向或纵向的直接排序
Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array
Array.sort(axis=1) #aixs=1横向培训
Array
Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array.sort(axis=0) #aixs=1纵向培训
Array
argsort()——先排序,再排序后输出下标,不改变数组
Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array.argsort()
lexsort(数组1,数组2……数组n)——多个数组在同轴上综合下标排序,不改变数组
a=np.array([3,2,1])
b=np.array([5,6,4])
c=np.lexsort((a,b))
c
b[c] #输出b数组的排序
a[c] #输出a数组的排序
去重复
unique()——进行数组里的去重
a=np.array([1,1,2,3,4,4,5])
print(a,'\n\n',np.unique(a))
重复输出
repeat(次数,axis=0/1)——将数组进行横向或纵向克隆
注意:axis=0会将数组展平
print(Array)
print('\n',Array.repeat(2),'\n')
print(Array.repeat(2,axis=1))
常用统计函数
——都可以用axis=0或1来调整操作轴向
2.掌握numpy数组的更多相关文章
- numpy数组的操作
numpy - 介绍.基本数据类型.多维数组ndarray及其内建函数 http://blog.csdn.net/pipisorry/article/details/22107553 http://w ...
- numpy数组、向量、矩阵运算
可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...
- Numpy数组对象的操作-索引机制、切片和迭代方法
前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...
- 操作 numpy 数组的常用函数
操作 numpy 数组的常用函数 where 使用 where 函数能将索引掩码转换成索引位置: indices = where(mask) indices => (array([11, 12, ...
- NumPy 超详细教程(1):NumPy 数组
系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 文章目录 Numpy 数组:n ...
- NumPy数组对象
1.创建NumPy数组 import numpy as np # 创建3*2*4的三维数组 a = np.arange(24).reshape(3, 2, 4) # 打印三维数组的所有元素 print ...
- Numpy 数组属性
Numpy 数组的维数称为秩(rank),一维数组的秩为 1 , 二维数组的秩为 2 , 以此类推:在Numpy中, 每一个线性的数组称为是一个轴(axis),也就是维度(dimensios).比如说 ...
- numpy 数组对象
numpy 数组对象NumPy中的ndarray是一个多维数组对象,该对象由两部分组成:实际的数据,描述这些数据的元数据# eg_v1 import numpy as np a = np.arange ...
- python numpy 数组拼接
我就写一下我遇到的,更多具体的请看Python之Numpy数组拼接,组合,连接 >>> aarray([0, 1, 2], [3, 4, 5], [6, 7, ...
- numpy数组(5)-二维数组的轴
numpy的mean(),std()等方法是作用于整个numpy数组的,如果是二维数组的话,也是整个数组,包括所有行和列,但我们经常需要它仅作用于行或者列,而不是整个二维数组,这个时候,可以定义轴ax ...
随机推荐
- 全局ID生成--雪花算法
分布式ID常见生成策略: 分布式ID生成策略常见的有如下几种: 数据库自增ID. UUID生成. Redis的原子自增方式. 数据库水平拆分,设置初始值和相同的自增步长. 批量申请自增ID. 雪花算法 ...
- 015.NET5_MVC_Razor局部视图
局部视图 1. 可以增加代码的重用性 如何定义? 1.添加一cshtml文件 2. 在页面中调用局部视图:@html.Partial("局部视图的名称") 问题:局部视图中不能访问 ...
- 网站备案查询/ICP备案查询网
网站备案查询/ICP备案查询网 互联网站备案信息全国公安机关互联网站安全服务平台http://www.beian.gov.cn/portal/index 1 http://www.miitbeian. ...
- redux 中间件 redux-saga 使用教程
redux 中间件 redux-saga 使用教程 redux middleware refs https://redux-saga.js.org/docs/ExternalResources.htm ...
- H5 广告落地页
H5 广告落地页 Landing Page 用于承接通过付费搜索渠道点击进入的用户,所以叫落地页 什么是登陆页面? 在数字营销中,登录页面是专门为营销或广告活动创建的独立网页. 访问者单击电子邮件中的 ...
- Top 10 JavaScript errors
Top 10 JavaScript errors javascript errors https://rollbar.com/blog/tags/top-errors https://rollbar. ...
- Baccarat中挖矿、兑换和做市的三角关系是什么?
NGK在这波DeFi潮中,推出了Baccarat,为用户带来了流动性挖矿收益,今天笔者就讲一讲Baccarat中挖矿.兑换和做市的关系. 兑换和做市是什么关系呢?众所周知,换币者,是用一种货币去换另一 ...
- [C#] 尝鲜.net6.0的C#代码热重载
看到.NET 6 Preview 1 发布,里面"除了 XAML 热重载之外,还将支持 C# 代码的热重载"一句,觉得有必要试试看,因为XAML热重载功能用起来确实很爽. 首先要下 ...
- JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装
知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...
- 【转载】Win10彻底格式化磁盘防止数据恢复的技巧
转载地址 注意 要尽量删除数据,请在运行cipher /w时关闭其他所有应用程序. 1.如果你在格式化磁盘后想要防止数据被恢复, Format 命令,而现在只需在其后添加 /P 参数,即可用随机数据覆 ...