给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+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
python的socket编程入门
Jan 29 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
pycharm安装和首次使用教程
Aug 27 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
python内存动态分配过程详解
Jul 15 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
解决python 读取 log日志的编码问题
Dec 24 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
Python类型转换的魔术方法详解
Dec 23 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
href下载文件根据id取url并下载
2014/05/28 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
详解Python中的相对导入和绝对导入
2017/01/06 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
numpy中的高维数组转置实例
2018/04/17 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
python实现可变变量名方法详解
2019/07/01 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
pycharm安装及如何导入numpy
2020/04/03 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
Python中的Cookie模块如何使用
2020/06/04 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
学校消防安全制度
2014/01/30 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
遗失证明范文
2015/06/19 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python