多维数组flatten成一维

让心情去旅行

01

基于 Python 封装和扩展的Numpy,具有更好地数值计算能力。可以看做是一个小型的 Matlab 数值计算库。这无疑让它变得强大,深度学习计算框架 TensorFlow 可以实现对 Numpy 的无缝衔接,更是体现了 TF 对Python的亲缘性。

今天花三分钟主要介绍利用 Numpy 的 flatten 接口,实现 降维。

02

ndarray.flatten()

ndarray 是 Numpy 的主要数据结构,是对多维数组的封装类。

举例:

x = np.arange(0, 16).reshape(2, 2, 4)

array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])

x1 = x.flatten()

结果:

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])

OK

可以看出,flatten 默认是按照 row-style 降为1维的,这是 c语言风格。

如果我想按照 column-style 降为1维呢? 这是 Fortran 语言风格。 设置 参数 order = 'F' ,也就是 Fortran 语言的首字符。

x2 = x.flatten(order='F')

x2

array([ 0, 8, 4, 12, 1, 9, 5, 13, 2, 10, 6, 14, 3, 11, 7, 15])

OK,flatten 讲清楚了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180625G070TX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券