让心情去旅行
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 讲清楚了。
领取专属 10元无门槛券
私享最新 技术干货