Python数据分析基础:numpy.expand_dims(),np.expand_dims()

  边写代码边讲解。

import numpy as np
#----------
arr = np.zeros((3, 2), dtype = int)
print(arr)
'''
[[0 0]
 [0 0]
 [0 0]]
'''
#----------
# 一维数组类似列表,[1, 2]
# 二维数组类似列表套列表,[[1, 2], [3, 4]],当然也允许只套1个列表,[[1, 2]]
# 三维数组类似列表套列表套列表,一级子元素是个二维数组,当然也允许只套1个二维数组
# arr = np.zeros((4, 5, 3, 2))
# 上述,①是个四维数组(4,5,3,2这一共是4个数);②从最后看,(3, 2)这是二维数组的结构,
# 3行2列。三维(想像是更大范围的小组,或者包装袋)含5个平行二维(这5个二维不一定相同)。
# 5个3行2列的二维数组组成三维数组。
# 四维(更大的包装袋)含4个平行三维(这4个三维不一定相同)。
# 4个三维数组组成四维数组,这个三维数组由5个二维数组组成,二维数组的结构是3行2列。
'''
[
    [[1, 2][3, 4]]
    [[5, 6][7, 8]]
]
'''
#----------
arr = np.zeros((3, 2), dtype = int)
print(arr.shape)  # (3, 2),3行2列
arr_a = np.expand_dims(arr, axis = 0)  # 变成(1, 3, 2),注意元素数没变!
#axis=0,切行,一行一行往下数,方向是向下的,在这个方向上加1维,相当于加行(加深度),如果有新元素可加,就类似于(2,3,2)
#这种结构,然而没有加新元素,那么就是(1,3,2)。
print('arr_a', arr_a)
'''
[[[0 0]
  [0 0]
  [0 0]]]
'''
print(arr_a.shape)  # (1, 3, 2)
#----------
arr_b = np.expand_dims(arr, axis = 1)  # 变成(3, 1, 2),注意元素数没变!
# axis=1,切列,一列一列往后数,方向向右,在这个方向上加维,如果不好想,就想想肯定不是在axis=0方向上加维
# 那么原来的3行2列肯定要变化了,老元素共6个,不可能增加新元素,变化后还得是6个元素
# 这么想还是挺麻烦,不如直接按(3,2),原来的axis=0是3,在axis=0方向插入1维,就是在3前边加个1变成(1,3,2)
# 原来的axis=1是2,在axis=1方向上插入1维就是在2前边插入1,变成(3,1,2)
print('arr_b', arr_b)
'''
[[[0 0]]

 [[0 0]]

 [[0 0]]]
'''
print(arr_b.shape)  # (3, 1, 2),是个三维数组,包含的二维数组是1行2列,这样的二维数组有3个
arr_c = np.expand_dims(arr, axis = 2)  # axis = 2或1,结果是不同的
# 原来是(3, 2)。3和2分别对应axis0和axis1,现在axis=2,相当于在最后加个1,变成(3, 2, 1)
# 三维含3个平行二维(这3个二维不一定相同),二维结构为两行一列
print('arr_c', arr_c)
'''
[[[0]
  [0]]

 [[0]
  [0]]

 [[0]
  [0]]]
'''
print(arr_c.shape)  # (3, 2, 1)
'''
#在前边、后边、中间加都可以,再多就不行报错了
arr_d = np.expand_dims(arr, axis = 3)  # numpy.AxisError: axis 3 is out of bounds for array of dimension 3
print(arr_d)
'''

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值