检查numpy数组是否连续?

Eth*_*xxx 8 python numpy contiguous

我如何确定n维numpy数组Arr是C样式还是Fortran样式连续的?

Eth*_*xxx 8

numpy文档指出,可以通过属性检查数组是C连续的还是Fortran连续的flags

Arr.flags['C_CONTIGUOUS']
Arr.flags['F_CONTIGUOUS']
Run Code Online (Sandbox Code Playgroud)

这些属性返回一个布尔值,指示两种情况中的哪一种是正确的。

  • 并且随着一些轴交换,可能两者都不为真。对于一维数组,这两者都是正确的 (3认同)

Cre*_*oat 5

你也可以试试ndarray.data.contiguous会员。例如(在我的机器上):

arr = np.arange(6).reshape(2, 3)

print(arr.data.contiguous)  # True
print(arr.data.c_contiguous)  # True
print(arr.data.f_contiguous)  # False
Run Code Online (Sandbox Code Playgroud)

(我找不到任何信息:哪些 numpy 版本支持这一点,即使在他们的文档中也是如此。欢迎在评论中提供任何线索!)