如何将三个NumPy数组合并为目标列结构的二维数组?
如何将三个一维NumPy数组合并为指定列结构的二维数组?
现有三个一维数组:
x = [63.001359127617185, 21.02926724707507, -64.99968875087593, 65.00084778093242, 34.00056603763737] y = [-35.998640872382815, 5.029267247075071, -23.99968875087593, -78.99915221906758, -98.99943396236263] z = [0.002285667282364421, 0.060360611442703896, 0.0008887456442498822, 0.007301422400429866, 0.004970329828018857]
想要合并成如下结构的二维数组:
array([[63.001359127617185, -35.998640872382815, 0.002285667282364421], [21.02926724707507, 5.029267247075071, 0.060360611442703896], [-64.99968875087593, -23.99968875087593, 0.0008887456442498822], [65.00084778093242, -78.99915221906758, 0.007301422400429866], [34.00056603763737, -98.99943396236263, 0.004970329828018857]])
用np.array([x,y,z])得到的是行排列结果,这里提供几种简单实现方式:
方法一:转置已有数组
先按行合并,再通过.T转置得到目标结构:import numpy as np np_arr = np.array([x, y, z]).T方法二:使用
np.column_stack
该函数专门用于将一维数组按列合并为二维数组,一步到位:import numpy as np np_arr = np.column_stack((x, y, z))方法三:
np.vstack结合转置
先垂直堆叠成行结构,再转置得到列合并结果:import numpy as np np_arr = np.vstack([x, y, z]).T
以上三种方法都能得到你需要的结构,其中np.column_stack最贴合列合并的需求。
内容的提问来源于stack exchange,提问作者Starwinwin
相关产品推荐
相关产品推荐

