给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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
python常见数制转换实例分析
May 09 Python
Django集成celery发送异步邮件实例
Dec 17 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
Python任务自动化工具tox使用教程
Mar 17 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
python Scrapy框架原理解析
Jan 04 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 Python
Pytest之测试命名规则的使用
Apr 16 Python
Python实战之OpenCV实现猫脸检测
Jun 26 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
linux命令之调试工具strace的深入分析
2013/06/03 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
javascript 闭包
2011/09/15 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
Angular.js中数组操作的方法教程
2017/07/31 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python去掉字符串中空格的方法
2014/03/11 Python
Python中的异常处理学习笔记
2015/01/28 Python
简洁的十分钟Python入门教程
2015/04/03 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Pandas的数据过滤实现
2021/01/15 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
介绍一下Linux中的链接
2016/06/05 面试题
消防标语大全
2014/06/07 职场文书
求职意向书范本
2015/05/11 职场文书
Python合并pdf文件的工具
2021/07/01 Python
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
Python加密技术之RSA加密解密的实现
2022/04/08 Python
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技