给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 Nose框架编写测试用例方法
Oct 26 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
python变量的作用域是什么
May 26 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
Javascript 入门基础学习
2010/03/10 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
JS常用知识点整理
2017/01/21 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
vue.js 获取select中的value实例
2018/03/01 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Python简单读取json文件功能示例
2017/11/30 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
为什么要使用servlet
2016/01/17 面试题
草船借箭教学反思
2014/02/03 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年团支书工作总结
2014/11/14 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
大学生年度个人总结
2015/02/15 职场文书
逃课检讨书范文
2015/05/06 职场文书
旷工检讨书大全
2015/08/15 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
 python中的元类metaclass详情
2022/05/30 Python