从Numpy中的ascontiguousarray说起
Numpy中,随机初始化的数组默认都是C连续的,经过不规则的slice
操作,则会改变连续性,可能会变成既不是C连续,也不是Fortran连续的。
Numpy可以通过.flags
熟悉查看一个数组是C连续还是Fortran连续的。
对array
进行按列的slice
操作,不改变每行的值,则还是C连续的;如果进行在行上的slice
,则会改变连续性,成为既不C连续,也不Fortran连续的。此时利用ascontiguousarray
函数,可以将其变为连续的:
可以这样认为,ascontiguousarray
函数将一个内存不连续存储的数组转换为内存连续存储的数组,使得运行速度更快。