给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创建和使用字典实例详解
Nov 01 Python
Python创建系统目录的方法
Mar 11 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python数据封装json格式数据
Mar 04 Python
详解Python with/as使用说明
Dec 13 Python
利用python开发app实战的方法
Jul 09 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php类常量的使用详解
2013/06/08 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
PHP Reflection API详解
2015/05/12 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python中列表和元组的区别
2017/12/18 Python
Python检测网络延迟的代码
2018/05/15 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
什么是Python中的顺序表
2020/06/02 Python
应届生护士求职信
2013/11/01 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
作风建设年度心得体会
2014/10/29 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技