两者的功能是一致的,将多维数组降为一维,但是两者的区别是返回拷贝还是返回视图,np.flatten(0返回一份拷贝,对拷贝所做修改不会影响原始矩阵,而np.ravel()返回的是视图,修改时会影响原始矩阵
示例:
import numpy as np
a = np.array([[1 , 2] , [3 , 4]])
b = a.flatten()
print('b:' , b)
c = a.ravel()
print('c:' , c)
d = a.ravel('F')
print('d:' , d)
# 二者的区别
b[0] = 10
print('a:' , a)
c[0] = 10
print('a:' , a)
输出:
b: [1 2 3 4]
c: [1 2 3 4]
d: [1 3 2 4]
a: [[1 2]
[3 4]]
a: [[10 2]
[ 3 4]]
本文详细介绍了NumPy中np.flatten与np.ravel两个函数的区别。虽然它们都可以将多维数组转换为一维数组,但np.flatten返回的是拷贝,而np.ravel返回的是视图。通过示例展示了对返回结果进行修改时,两者对原始数组的影响不同。
1915

被折叠的 条评论
为什么被折叠?



