『Numpy』np.ravel()和np.flatten()


What is the difference between flatten and ravel functions in numpy?

兩者的功能是一致的,將多維數組降為一維,但是兩者的區別是返回拷貝還是返回視圖,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]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM