【问题标题】:Check if numpy array is contiguous?检查numpy数组是否连续?
【发布时间】:2018-12-20 14:19:53
【问题描述】:

如何确定一个 n 维 numpy 数组 Arr 在 C 样式或 Fortran 样式中是否连续?

【问题讨论】:

  • 另请查看strides

标签: python numpy contiguous


【解决方案1】:

The numpy documentation 表示可以通过属性flags 来检查数组是 C 连续还是 Fortran 连续:

Arr.flags['C_CONTIGUOUS']
Arr.flags['F_CONTIGUOUS']

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

【讨论】:

  • 除非它不是一个函数,它实际上是numpy.ndarray 对象的一个​​属性,正如您报告的语法(这是正确的)所暗示的那样。
  • @norok2,你是对的!我编辑了答案。谢谢!
  • 并且通过一些轴交换,可能两者都不是真的。对于一维数组,两者都是 True
【解决方案2】:

您也可以试试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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2013-08-02
    • 2018-06-15
    相关资源
    最近更新 更多