给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实现端口转发器的方法
Mar 13 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
Python如何生成树形图案
Jan 03 Python
python如何为创建大量实例节省内存
Mar 20 Python
python儿童学游戏编程知识点总结
Jun 03 Python
Python的垃圾回收机制详解
Aug 28 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
Python析构函数__del__定义原理解析
Nov 20 Python
Python实现粒子群算法的示例
Feb 14 Python
python使用shell脚本创建kafka连接器
Apr 29 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
实用函数10
2007/11/08 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
jquery 回车事件实现代码
2011/08/23 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
python数组过滤实现方法
2015/07/27 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python 爬虫的原理
2020/07/30 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
司机的工作范围及职责
2013/11/13 职场文书
《理想》教学反思
2014/02/17 职场文书
技术总监管理职责范本
2014/03/06 职场文书
学生逃课检讨书
2015/02/17 职场文书
质量保证书格式模板
2015/02/27 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
Python 如何安装Selenium
2021/05/06 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python