给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实现屏幕截图的代码及函数详解
Oct 01 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
浅谈Python中的私有变量
Feb 28 Python
python 巧用正则寻找字符串中的特定字符的位置方法
May 02 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
python将txt文件读入为np.array的方法
Oct 30 Python
python根据多个文件名批量查找文件
Aug 13 Python
python实现单机五子棋
Aug 28 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
python 如何上传包到pypi
Dec 24 Python
pandas中关于apply+lambda的应用
Feb 28 Python
Python IO文件管理的具体使用
Mar 20 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php实现微信公众号无限群发
2015/10/11 PHP
php数组分页实现方法
2016/04/30 PHP
简述php环境搭建与配置
2016/12/05 PHP
轻松实现php文件上传功能
2017/02/17 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
python引用DLL文件的方法
2015/05/11 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python实现的config文件读写功能示例
2019/09/24 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
Python request post上传文件常见要点
2020/11/20 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
PHP面试题及答案二
2015/05/23 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
C#笔试题
2015/07/14 面试题
MYSQL支持事务吗
2013/08/09 面试题
小学班长竞选演讲稿
2014/04/24 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
2015年新教师工作总结
2015/04/28 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技
Golang 字符串的常见操作
2022/04/19 Golang