python教程,如何快速将ndarray扁平化处理?多维变一维?
发布于 作者:苏南大叔 来源:程序如此灵动~

如何将多维的ndarray
快速扁平化处理,变成一维的呢?这就是本文要主要讨论的话题,共有两种方案可供选择。变成一维之后,就可以进一步变形或者进行处理了。

苏南大叔的“程序如此灵动”技术博客,本文讨论如果通过两种方案快速的将ndarray
类型数据扁平化处理。测试环境:win10
,python@3.11.0
,numpy@1.24.2
,pandas@1.5.3
。目标就是扁平化处理,实际上就是把维度变成一维的。
方案一:np.ravel()【官方推荐】
这个是numpy
提供的功能,并不是定义在ndarray
上面的。核心代码:
方案二:ndarray.ravel()
方案三:ndarray.reshape()【推荐】
这个方案在以前的文章里面有个讨论,任何维度的ndarray
都可以通过.reshape()
进行重塑处理。当重塑的目标形状是一维的时候,就符合本文的需求了,ndarray
扁平化!
具体来说,有两种调用方式,区别就在于参数传递什么。
或者:
参考文章:https://newsn.net/say/ndarray-reshape.html
方案四:np.reshape()【官方推荐】
这个是numpy
提供的功能,并不是定义在ndarray
上面的。核心代码:
方案五:ndarray.flatten()【官方推荐】
其实官方推荐的是这个.flatten()
函数来实现这个需求,但是这个函数的问题在于单词不好记是不?不如.reshape(-1)
好记。
测试代码

测试代码:
输出:
关于两个ndarray
是否相等的经验文章,请参考:
提外话:order
读取顺序【主动忽略】
本文提到的这些函数都有个order
参数,默认为C
。这里就不举例为其它的情况了。使用默认C
就是对的,换成其它参数就会得到不可控的结果。待后续文章讨论。
总结
通篇文章都是python
经验文章的总结,如果读者对于苏南大叔所有的python
文章感兴趣,可以点击下面的链接查看:


