给numpy.array增加维度的超简单方法

 更新时间:2021年06月01日 14:44:42   作者:whyume  
这篇文章主要介绍了给numpy.array增加维度的超简单方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

输入:

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的Django框架中settings文件的部署建议

    Python的Django框架中settings文件的部署建议

    这篇文章主要介绍了Python的Django框架中settings文件的部署建议,包括对local_settings的弊病的一些简单分析,需要的朋友可以参考下
    2015-05-05
  • Python图像特效之模糊玻璃效果

    Python图像特效之模糊玻璃效果

    这篇文章主要为大家详细介绍了Python图像特效之模糊玻璃效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python 基于opencv 绘制图像轮廓

    python 基于opencv 绘制图像轮廓

    这篇文章主要介绍了python 基于opencv 绘制图像轮廓的示例,帮助大家更好的利用python的opencv库处理图像,感兴趣的朋友可以了解下
    2020-12-12
  • 介绍Python中的fabs()方法的使用

    介绍Python中的fabs()方法的使用

    这篇文章主要介绍了介绍Python中的fabs()方法的使用,是Python入门当中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 学习win32com操作word之Range精讲

    学习win32com操作word之Range精讲

    这篇文章主要为大家介绍了win32com操作word之Range精讲学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • python文件读取read及readlines两种方法使用详解

    python文件读取read及readlines两种方法使用详解

    这篇文章主要为大家介绍了python文件读取read及readlines两种方法的使用示例及区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Pytorch神经网络参数管理方法详细讲解

    Pytorch神经网络参数管理方法详细讲解

    这篇文章主要介绍了Pytorch神经网络参数管理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-05-05
  • 将python依赖包打包成window下可执行文件bat方式

    将python依赖包打包成window下可执行文件bat方式

    今天小编就为大家分享一篇将python依赖包打包成window下可执行文件bat方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python学习笔记:字典的使用示例详解

    python学习笔记:字典的使用示例详解

    python字典的使用: python字典有很多好用的地方。字典每个元素都有键和值。如同现代汉语字典中的拼音和对应的文字。字典中的键是唯一的,而值不一定唯一。你看,和现代汉语字典多么的相似。
    2014-06-06
  • Python 操作 ElasticSearch的完整代码

    Python 操作 ElasticSearch的完整代码

    python提供了操作ElasticSearch 接口,因此要用python来操作ElasticSearch,这篇文章主要介绍了Python 操作 ElasticSearch,需要的朋友可以参考下
    2019-08-08

最新评论