给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中用get()方法获取字典键值的教程
May 21 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python实现图片彩色转化为素描
Jan 15 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
pytorch 修改预训练model实例
Jan 18 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
PHP实现的sqlite数据库连接类
2014/12/12 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
php服务器的系统详解
2019/10/12 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
python 根据字典的键值进行排序的方法
2019/07/24 Python
python实现数字炸弹游戏程序
2020/07/17 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
超市促销活动方案
2014/03/05 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
要账委托书范本
2014/09/15 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
努力工作保证书
2015/02/28 职场文书
小学运动会开幕词
2016/03/04 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python