Numpy记录完结版

Numpy 完结

Numpy(Numerical Python):是Scipy \ Scikit-Learn等的通用底层语言;

一、array

1、array本身的属性:

shape  返回的是数组;

ndim

size

dtype

可以通过.访问:a.shape  a.ndim  a.size  a.dtype
2、创建array的方法:

1、从python list来或np.array()
2、预定函数:arange,ones/ones_like,zeros/zero_like,empty/empty_like,full/full_like,eye;

full: 全是某个数值;

empty:空的或接近于0的数值;

3、np.random模块

     .randn   具有标准正台分布

      randint(min,max,个数)

3、array本身支持大量的操作和函数

1、直接逐元素相加

2、面向多维的索引

3、求sum/mean等聚合函数

4、线性代数函数,如逆矩阵等

5、np.sin  np.exp

data = np.random.random((10,20))

0-1的随机数;
data = np.random.randint(5,size=(100,1))

最小值为第一个数;后面是size

可以实现one_hot编码:  虽然不明白,记住吧;

one_hot = np.eye(NCLASSES)[np.array(label, np.int32)]

二、索引

numpy的切片修改会修改原来的数组;

1、基础索引:一维索引与list一致;

二维矩阵索引:x[0][2]  跟  x[0,2]一致;  ‘,’逗号前是行索引;逗号后是列索引

2、神奇(花式)索引:x[[0,2]]  两个中括号  第0、2行  等价于 x[[0,2],:]

x[[0,1,2],[1,3,4]]:返回的是 (0,1),(1,3), (2,4)位置   看逗号位置

3、布尔索引

c=np.arange(12).reshape(3,4)
c=c[c>5]

三、randomm模块

random.seed(x)

设定随机种子

random.rand(d0,d1...dn)

(0,1)间 均匀分布

random.randn(d0,d1...dn)

均值为0,方差为1

random.randint(low[,high,size,dtype])

指定high[low,high),不指定[0,high)

random.random([size])

(0.0,1.0)

random.shuffle(x)

对数组x进行随机排列直接修改,若多维,只会在第一维打散数据,x

random.normal([loc,scale,size])

均值,方差,尺寸

random.uniform([low,high,size])9219921921

float型

四、数学统计分析

1、常见的统计函数

np.sum

所有元素和

np.prod

所有元素乘

np.cumsum

元素的往前累积加和

np.cumprod

元素的往前累积加乘

np.min np.max np.mean

最小值 最大值 平均

np.average

加权平均

np.median

中位数

np.percentile(arr,[25,75,100])

0-100百分位数

np.quantile(arr,[25,75,100])

0-1分位数

np.std

标准差

np.var

方差

  1. weights = np.random.rand(*aa.shape)  
  2. bb=np.average(aa,weights=weights)  
  3. print(bb) 

*用来拆分元组;

2、按不同维度axis计算

axis=0 把行消灭掉,跨行计算;重力往下;

axis=1 把列消灭掉,跨列计算;F1往右;

np.sum(axis=0)

机器学习中:

行:代表一个样本数据;

列:代表样本的特征;

  1. #每列均值及方差  
  2. arr = np.arange(12).reshape(3,4)
  3. mean = np.mean(arr,axis=0)  
  4. std = np.std(arr,axis=0)  
  5. result_std = (arr-mean)/std  
  6. print(result_std) 

或者下面直接一个语句就行;

  1. result_std = (arr-np.mean(arr,axis=0))/np.std(arr,axis=0)  

五、数组升维的三种方式:

1、np.newaxis关键字:其实就是个None

  1. #添加行维度  
  2. bb = arr[np.newaxis,:]  
  3. #添加列维度  
  4. cc = arr[:,np.newaxis] 

2、np.reshape(arr, newshape)方法方法

  1. #-1还可以自动算行或列
  2. a = np.reshape(arr,(1,-1))  

3、np.expand_dims方法:

  1. dd = np.expand_dims(arr,axis=0) 

六、数组的合并

1、添加行:如添加样本

2、添加列:如添加特征;

np.concatenate(array,axis=0/1)   沿着axis进行数组合并,默认为0

concatenate可以实现下面两个功能;

np.vstack(arr)或row_stack           垂直合并 vertically

np.hstack(arr)或np.column_stack     水平合并 horizontally

七、数组排序

共三种:

np.sort(arr)     返回排序后的数组,不会改变arr本身

arr.sort()        改变arr本身

np.argsort(arr)     返回的是索引

python的排序用sorted;

八、数组的乘法

1、*符号或者np.multiply():逐元素乘法:shape要相同

2、@符号或者np.matmul():矩阵乘法 (n,k),(k,m)->(n,m)

3、np.dot:点积(内积)乘法,乘后相加;

np.dot 与 np.sum(np.multiply()) 一致的

numpy中的一维数组可以认为是行或列向量;

九、数组读写到文件

表格类数据一般用pandas;

npy和npz都是二进制格式文件,纯文本编辑器打开是乱码;

1、np.load(filename):      npy单个数组或npz多个数组的字典:

2、np.save(filename,arr): 单个numpy数组保存到npy文件;

3、np.savez(filename,arra=arra,arrb=arrb):多个numpy数组保存到npz未压缩文件;

4、np.savez_compressed(filename,arra=arra,arrb=arrb):并压缩;

示范1:np.load 及np.save   格式.npy

  1. arra = np.arange(12).reshape(3,4)  
  2. np.save('arra.npy',arra)  
  3. arrb=np.load('arra.npy'

示范2:np.savez \ savez_compressed 格式要改成.npz   用字典访问;

  1. arra = np.arange(12).reshape(3,4)  
  2. arrc = np.random.rand(5,4)  
  3. np.savez('arr_ac.npz',arra=arra,arrc=arrc)  
  4. arrb=np.load('arr_ac.npz')  
  5. print(arrb['arra'])  

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
代码下载:完整代码,可直接运行 ;运行本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值