如何将形状为(n,1)的NumPy数组重塑为(n,)的一维结构?
实现方法
你需要将形状为(n,1)的数组降维为(n,),有以下几种简单的实现方案:
- 使用squeeze方法(最适配你的场景)
squeeze的作用就是移除数组中所有长度为1的维度,不需要手动指定参数,代码如下:
import numpy as np # 假设你的原数组名为arr res = np.squeeze(arr)
- 使用索引切片
直接提取第二个维度的第0位所有元素,逻辑直观:
res = arr[:, 0]
- 反向使用reshape
和你之前升维的操作对应,直接指定目标形状即可,用-1可以自动计算n的数值,不需要手动传入:
res = arr.reshape(-1,)
- 使用拉平方法
用ravel或者flatten将数组直接拉平为一维结构:
# ravel优先返回视图,不占用额外内存 res = arr.ravel() # flatten固定返回新的拷贝 res = arr.flatten()
注意事项
你之前尝试的array[0]是取数组的第一行元素,只会得到单个内嵌的array,自然不符合预期,以上方法都可以直接得到你需要的(n,)结构。
内容的提问来源于stack exchange,提问作者technoking
相关产品推荐
相关产品推荐

