numpy将多维数组降维成一维


numpy将多维数组降维成一维

一、总结

一句话总结:

可以用reshape方法,但是感觉flatten方法更好
pridict_y

[[14.394563 ]
 [ 4.5585423]
 [10.817445 ]
 [12.291978 ]
 [26.076233 ]
 [20.033213 ]
 [11.320534 ]
 [14.528755 ]
 [11.454205 ]
 [ 9.153889 ]
 [12.769189 ]
 [ 5.7419834]
 [25.451023 ]
 [18.215645 ]
 [21.743513 ]
 [ 8.488817 ]
 [17.128687 ]
 [17.53172  ]
 [ 4.953989 ]
 [11.3504   ]
 [ 7.5612407]
 [ 4.2715034]
 [20.316795 ]
 [17.732632 ]
 [ 4.2850647]
 [ 6.971166 ]
 [11.657596 ]
 [24.968727 ]
 [13.93272  ]]

pridict_y.reshape(29,)
和
pridict_y.flatten()
结果都是

array([14.394563 ,  4.5585423, 10.817445 , 12.291978 , 26.076233 ,
       20.033213 , 11.320534 , 14.528755 , 11.454205 ,  9.153889 ,
       12.769189 ,  5.7419834, 25.451023 , 18.215645 , 21.743513 ,
        8.488817 , 17.128687 , 17.53172  ,  4.953989 , 11.3504   ,
        7.5612407,  4.2715034, 20.316795 , 17.732632 ,  4.2850647,
        6.971166 , 11.657596 , 24.968727 , 13.93272  ], dtype=float32)

 

 

 

二、【python】numpy库ndarray多维数组的维度变换方法

转自或参考:【python】numpy库ndarray多维数组的维度变换方法:reshape、resize、swapaxes、flatten等详解与实例
https://blog.csdn.net/brucewong0516/article/details/79185282

numpy库对多维数组有非常灵巧的处理方式,主要的处理方法有:

  • .reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变
  • .resize(shape) : 与.reshape()功能一致,但修改原数组
In [22]: a = np.arange(20)
#原数组不变
In [23]: a.reshape([4,5])
Out[23]:
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])

In [24]: a
Out[24]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])

#修改原数组
In [25]: a.resize([4,5])

In [26]: a
Out[26]:
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])
  • .swapaxes(ax1,ax2) : 将数组n个维度中两个维度进行调换,不改变原数组
In [27]: a.swapaxes(1,0)
Out[27]:
array([[ 0, 5, 10, 15], [ 1, 6, 11, 16], [ 2, 7, 12, 17], [ 3, 8, 13, 18], [ 4, 9, 14, 19]])
  • .flatten() : 对数组进行降维,返回折叠后的一维数组,原数组不变
In [29]: a.flatten()
Out[29]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM