如何让单行NumPy数组的.shape返回(4,1)这类二维元组?
解决NumPy一维数组形状适配问题
当然可以,有几种简单方法能把一维NumPy数组的形状从(n,)改成(n,1),避免因访问shape[1]报错:
使用
reshape方法:import numpy as np x_data = np.array([1,2,3,4]) x_data = x_data.reshape(-1, 1) # 此时x_data.shape为(4,1)这里的
-1表示让NumPy自动计算该维度的长度,不管原数组是4个还是5个元素,都能正确转成(n,1)的二维结构。利用索引增加新轴:
可以用[:, np.newaxis]或者更简洁的[:, None],效果完全一致:x_data = x_data[:, np.newaxis] # 或者 x_data = x_data[:, None]这种方式直接在原数组的列方向新增一个维度,操作更直观。
使用
np.expand_dims函数:
明确指定要新增维度的位置(axis=1表示第二个维度):x_data = np.expand_dims(x_data, axis=1)
转成二维数组后,x_data.shape[1]就会返回1,不会再出现索引未定义的报错。
内容的提问来源于stack exchange,提问作者Gaff
相关产品推荐
相关产品推荐

