给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使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python爬取365好书中小说代码实例
Feb 28 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
Python 可视化神器Plotly详解
Dec 26 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
PHP的开合式多级菜单程序
2006/10/09 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
Javascript倒计时代码
2010/08/12 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
Python采用Django开发自己的博客系统
2020/09/29 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
通信专业个人自我鉴定
2013/10/21 职场文书
大学生毕业自我评价范文分享
2013/11/07 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
计划生育目标责任书
2015/05/09 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
雷锋观后感
2015/06/10 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
MySQL详细讲解变量variables的用法
2022/06/21 MySQL
MySQL存储过程及语法详解
2022/08/05 MySQL