给numpy.array增加维度的超简单方法


Posted in Python onJune 02, 2021

输入:

import numpy as np 
a = np.array([1, 2, 3])
print(a)

输出结果:

array([1, 2, 3])

输入:

print(a[None])

输出结果:

array([[1, 2, 3]])

输入:

print(a[:,None])

输出结果:

array([[1],               
       [2],               
       [3]])     

numpy数组的维度增减方法

使用np.expand_dims()为数组增加指定的轴,np.squeeze()将数组中的轴进行压缩减小维度。

1.增加numpy array的维度

在操作数组情况下,需要按照某个轴将不同数组的维度对齐,这时候需要为数组添加维度(特别是将二维数组变成高维张量的情况下)。

numpy提供了expand_dims()函数来为数组增加维度:

import numpy as np
a = np.array([[1,2],[3,4]])
a.shape
print(a)
>>>
"""
(2L, 2L)
[[1 2]
 [3 4]]
"""
# 如果需要在数组上增加维度,输入需要增添维度的轴即可,注意index从零还是
a_add_dimension = np.expand_dims(a,axis=0)
a_add_dimension.shape
>>> (1L, 2L, 2L)

a_add_dimension2 = np.expand_dims(a,axis=-1)
a_add_dimension2.shape
>>> (2L, 2L, 1L)

a_add_dimension3 = np.expand_dims(a,axis=1)
a_add_dimension3.shape
>>> (2L, 1L, 2L)

2.压缩维度移除轴

在数组中会存在很多轴只有1维的情况,可以使用squeeze函数来压缩冗余维度

b = np.array([[[[5],[6]],[[7],[8]]]])
b.shape
print(b)
>>>
"""
(1L, 2L, 2L, 1L)
array([[[[5],
         [6]],

        [[7],
         [8]]]])
"""
b_squeeze = b.squeeze()
b_squeeze.shape
>>>(2L, 2L)   #默认压缩所有为1的维度

b_squeeze0 = b.squeeze(axis=0)   #调用array实例的方法
b_squeeze0.shape
>>>(2L, 2L, 1L)

b_squeeze3 = np.squeeze(b, axis=3)   #调用numpy的方法
b_squeeze3.shape
>>>(1L, 2L, 2L)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python脚本操作MongoDB的教程
Apr 16 Python
Python读写文件方法总结
Jun 09 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Python socket处理client连接过程解析
Mar 18 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
总结python多进程multiprocessing的相关知识
Jun 29 Python
python中tkinter复选框使用操作
Nov 11 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
javascript动态创建及删除元素的方法
2014/12/22 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
Python中的多行注释文档编写风格汇总
2016/06/16 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
python if not in 多条件判断代码
2016/09/21 Python
django中的setting最佳配置小结
2017/11/21 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
企业宣传方案
2014/03/04 职场文书
产品质量承诺范本
2014/03/31 职场文书
企业法人授权委托书
2014/09/25 职场文书
见习报告的格式
2014/10/31 职场文书
文艺晚会开场白
2015/05/29 职场文书
使用JS实现简易计算器
2021/06/14 Javascript
英镑符号 £
2022/02/17 杂记
vue修饰符.capture和.self的区别
2022/04/22 Vue.js