python .ravel() .flatten()

来源:互联网 发布:gre作文被判雷同 知乎 编辑:程序博客网 时间:2024/06/06 05:16

两者的本质都是想把多维的数组降为1维。区别在于numpy.flatten()返回一份拷贝,对数据更改时不会影响原来的数组,而numpy.ravel()则返回视图,对数据更改时会影响原来的数组。

共同点:

>>> import numpy as np>>> x = np.array([[1,3,4],[2,3,5]])>>> x.ravel()array([1, 3, 4, 2, 3, 5])>>> x.flatten()array([1, 3, 4, 2, 3, 5])

不同点:

>>> x.flatten()[1] =10>>> xarray([[1, 3, 4],       [2, 3, 5]])>>> >>> x.ravel()[1] = 10>>> xarray([[ 1, 10,  4],       [ 2,  3,  5]])
原创粉丝点击