numpy.ravel()的区别numpy.flatten()

import numpy as np

numpy.ravel()的区别numpy.flatten()

(1)两者所要实现的功能是一致的(将多维数组降位一维);

(2)numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵;

(3)numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。

1、测试flatten和ravel的值

a1=np.array([[1,2,3],[4,5,6]])
b1=np.array([[1,2,3],[4,5,6]])

print(“a1:”,a1)

a1: [[1 2 3]

[4 5 6]]

print(“a1.flatten():”,a1.flatten())#a1.flatten(): [1 2 3 4 5 6]
print(“b1.ravel():”,b1.ravel())#b1.ravel(): [1 2 3 4 5 6]

2、两个的区别

a1.flatten()[1]=200;#原始矩阵不会改变
print(“a1.flatten():”,a1.flatten())#a1.flatten(): [1 2 3 4 5 6]
b1.ravel()[1]=200;#原始矩阵会改变
print(“b1.ravel():”,b1.ravel())#b1.ravel(): [ 1 200 3 4 5 6]

猜你喜欢

转载自blog.csdn.net/junchengberry/article/details/80298564
今日推荐