目录
功能
用法
区别
flatten()
ravel()
功能
这两个函数的功能都是将多维数组转换成一维
用法
import numpy as np
arr = np.array([[1, 2],[3, 4]])
arr.flatten()降维默认行序优先,传入参数‘F’表示列序优先
arr.flatten('F')
arr.ravel() #降维默认行序优先,传入参数‘F’表示列序优先
arr.ravel('F')##arr.flatten()=%s [1 2 3 4]
##arr.flatten('F')=%s [1 3 2 4]
##arr.ravel()=%s [1 2 3 4]
##arr.ravel('F')=%s [1 3 2 4]
区别
ravel()返回的是视图,意味着改变元素的值会影响原始数组;
flatten()返回的是拷贝,意味着改变元素的值不会影响原始数组。
flatten()
import numpy as np
arr = np.array([[1, 2],[3, 4]])
print(arr)
arr1 = arr.flatten()
arr1[1]=100
print(arr)
print(arr1)
arr = [[1 2][3 4]]arr = [[1 2][3 4]]#原始数组没有发生改变arr1 = [ 1 100 3 4]
ravel()
import numpy as np
arr = np.array([[1, 2],[3, 4]])
print(arr)
arr1 = arr.ravel()
arr1[1]=100
print(arr)
print(arr1)
arr = [[1 2][3 4]]arr = [[ 1 100][ 3 4]]#原始数组发生了改变arr1 = [ 1 100 3 4]