目錄
功能
用法
區別
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]
?