当前位置:
首页 > temp > python入门教程 >
-
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来调整操作轴向
出处:https://www.cnblogs.com/tyh1999/p/13974578.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数