Numpy数组shape结果(3,2,1)中1的含义及图示化解析咨询
NumPy数组shape返回值中末尾1的含义讲解
你运行的代码对应的数组结构和shape返回值对应关系如下:
import numpy as np a = np.array([ [[1],[56]] , [[8],[98]] ,[[89],[62]] ]) print(np.shape(a)) # 输出 (3, 2, 1)
NumPy的shape返回值从左到右对应数组从外到内的每一层嵌套方括号的元素数量:
- 第一层最外层方括号内共有3个同级子数组,对应第一个值
3 - 每个第一层子数组的方括号内共有2个同级子数组,对应第二个值
2 - 每个第二层子数组的方括号内只有1个数值元素,没有更深的嵌套,对应第三个值
1
结构图示
# 整体数组层级对应 [ # 最外层 → 共3个元素 → shape[0] = 3 [ [1], [56] ], # 第1个外层子数组 → 共2个元素 → shape[1] = 2 [ [8], [98] ], # 第2个外层子数组 [ [89], [62] ] # 第3个外层子数组 ] # 第二层子数组结构(以[1]为例) [ 1 ] # 这一层仅1个数值 → shape[2] = 1
补充说明:如果你去掉最内层的方括号,将数组写为np.array([ [1,56], [8,98], [89,62] ]),此时shape返回值就是(3,2),不会出现末尾的1。如果需要移除这个长度为1的冗余轴,可以调用np.squeeze(a),返回的数组shape为(3,2)。
内容的提问来源于stack exchange,提问作者user17344362
相关产品推荐
相关产品推荐

