给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创建日历实例
Aug 21 Python
跟老齐学Python之集合的关系
Sep 24 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python实现视频下载功能
Mar 14 Python
pandas值替换方法
Jul 10 Python
python遍历小写英文字母的方法
Jan 02 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
django model object序列化实例
Mar 13 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
python里glob模块知识点总结
Jan 05 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
Python算法之图的遍历
2017/11/16 Python
python pygame模块编写飞机大战
2018/11/20 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Python数学形态学实例分析
2019/09/06 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
Python小白垃圾回收机制入门
2020/06/09 Python
机械专业毕业生自荐信
2013/11/02 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
Python实现随机生成迷宫并自动寻路
2021/06/13 Python