Python中Numpy矩阵元素为1x1矩阵,如何使s0[3][0]直接返回数值?
问题解决方法
问题根源
你当前使用的S0是形状为(行数, 列数, 1)的三维NumPy数组,最后一维长度为1属于冗余维度,因此S0[3][0]取到的是长度为1的一维数组,输出才会显示为[1]。
可选解决方案
方案1:临时访问时提取标量(无需修改原数组)
访问时追加.item()方法即可直接拿到标量值,代码如下:print(S0[3][0].item())该方案适合仅需要临时获取标量值、不需要改动原数组结构的场景。
方案2:删除数组冗余维度(一劳永逸)
调用NumPy的squeeze()方法移除所有长度为1的维度,处理后数组会变成标准二维结构,后续直接索引即可拿到数值:# 移除所有长度为1的维度 S0 = S0.squeeze() # 若要精准只移除最后一维,避免误删其他位置的合法长度1维度,可指定axis参数 # S0 = S0.squeeze(axis=2) # 处理后直接访问即可输出数值1 print(S0[3][0])
内容的提问来源于stack exchange,提问作者new user
相关产品推荐
相关产品推荐

