给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的迭代器、生成器以及相关的itertools包
Apr 02 Python
python在控制台输出进度条的方法
Jun 20 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
520使用Python实现“我爱你”表白
May 20 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
Python+Appium实现自动抢微信红包
May 21 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python打印斐波拉契数列实例
2015/07/07 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
python 构造三维全零数组的方法
2018/11/12 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
override和overload的区别
2016/03/09 面试题
英语系本科生求职信范文
2013/12/18 职场文书
高二物理教学反思
2014/02/08 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
Pandas自定义选项option设置
2021/07/25 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python