asarray
和 ascontiguousarray
都是用于將輸入轉換為數組的函數,但它們有一些不同之處。
asarray
函數將輸入轉換為數組,如果輸入已經是一個數組,則不會進行復制操作,如果輸入是一個類數組對象(如列表、元組等),則會將其轉換為數組。此外,asarray
默認情況下會保留輸入的內存布局。如果輸入是一個非連續的數組(即不是 C 或者 Fortran 連續的),asarray
會保留其非連續性。
ascontiguousarray
函數與 asarray
類似,也是將輸入轉換為數組,但是它會確保輸出數組是連續的。如果輸入是一個非連續的數組,ascontiguousarray
會復制輸入數組以確保輸出數組是連續的。
綜上所述,主要區別在于對于非連續數組的處理。asarray
會保留輸入數組的內存布局,而 ascontiguousarray
會確保輸出數組是連續的。