给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出现segfault错误解决方法
Apr 16 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python动态导入模块的方法实例分析
Jun 28 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
python异步Web框架sanic的实现
Apr 27 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
python解决12306登录验证码的实现
Apr 18 Python
Python实现双向链表基本操作
May 25 Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
python pygame入门教程
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP 文件缓存的性能测试
2010/04/25 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python Socket传输文件示例
2017/01/16 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
中学自我评价
2014/01/31 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android