Python中将1D、2D numpy数组转换为单列1D数组的方法咨询
NumPy 数组转单列数组实现方案
1D数组转单列数组
你示例中的1D数组x = np.array([1,2,3,4]) 原本shape为(4,),转成shape为(4,1)的单列数组可选用以下任意一种方法:
import numpy as np x = np.array([1,2,3,4]) # 方法1:reshape指定维度,-1代表自动匹配行数 x_col = x.reshape(-1, 1) # 方法2:索引新增维度 x_col = x[:, np.newaxis] # 方法3:expand_dims显式加轴 x_col = np.expand_dims(x, axis=1)
输出结果和你预期一致:
array([[1], [2], [3], [4]])
2D数组按列优先转单列数组
你示例中的2D数组y = np.array([[1,2,3],[4,5,6]]) 需要先按列优先顺序展平,再转成单列:
y = np.array([[1,2,3],[4,5,6]]) # order='F'指定按列优先(Fortran顺序)展平,再转单列 y_col = y.flatten(order='F').reshape(-1, 1)
输出结果完全符合你的预期:
array([[1], [4], [2], [5], [3], [6]])
小补充:如果需要按行优先顺序展平,去掉
order='F'参数即可,会得到按[1,2,3,4,5,6]排列的单列数组。
内容的提问来源于stack exchange,提问作者Sci_tech
相关产品推荐
相关产品推荐

