两者的本质都是想把多维的数组降为1维。区别在于numpy.flatten()返回一份拷贝,对数据更改时不会影响原来的数组,而numpy.ravel()则返回视图,对数据更改时会影响原来的数组。
相同点:
a = np.array([[1,2,3],[11,22,33]])
print(a.ravel())
输出:[ 1 2 3 11 22 33]
print(a.flatten())
输出:[ 1 2 3 11 22 33]
不同点:
修改数据:
a.flatten()[1] = 10
print(a)
输出:[[ 1 2 3]
[11 22 33]]
a.ravel()[1] = 10
print(a)
输出:[[ 1 10 3]
[11 22 33]]
欢迎关注我的微信公众号,会同步更新python、java、算法等相关内容!!!