numpy.ravel() 与numpy.flatten()

来源:互联网 发布:捷程网络 编辑:程序博客网 时间:2024/06/06 17:23

二者都是将多维数组降位一维
区别:
numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,
numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。

两者默认均是行序优先

In [1]: import numpy as npIn [2]:x=np.array([[1,2],[3,4],[5,6]])In [3]:xOut[3]: array([[1, 2],       [3, 4],       [5, 6]])In [4]:x.flatten()Out[4]:array([1, 2, 3, 4, 5, 6])In [7]:x.ravel()Out[7]:array([1, 2, 3, 4, 5, 6])In [8]:x.flatten('F')Out[8]:array([1, 3, 5, 2, 4, 6])In[8]:x.flatten('F')Out[8]: array([1, 3, 5, 2, 4, 6])In[9]:x.ravel('F')Out[9]: array([1, 3, 5, 2, 4, 6])

这里写图片描述

原创粉丝点击