给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中xrange用法分析
Apr 15 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
python的exec、eval使用分析
Dec 11 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
python实现彩色图转换成灰度图
Jan 15 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
Python实战之OpenCV实现猫脸检测
Jun 26 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
调频问题解答
2021/03/01 无线电
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
测试工程师职业规划书
2014/02/06 职场文书
好学生评语大全
2014/05/05 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
绿色出行口号
2014/06/18 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
奖励申请报告范文
2015/05/15 职场文书
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android