【问题标题】:Get data array backing fortran ordered numpy array获取支持fortran有序numpy数组的数据数组
【发布时间】:2020-04-11 05:07:45
【问题描述】:

所以我理解 numpy 数组的“fortran 排序”意味着它是存储的主要列,但实际上并不影响数据所代表的内容。我正在寻找的是一种获取列主要 numpy 数组的方法,并返回一个一维数组,该数组以与 numpy 的内部列主要表示相同的顺序存储。

例如,假设我有一个这样的数组,但它以列主要格式存储。

array([[1, 2, 3],
       [4, 5, 6]])

由于是专栏专业,所以步幅为(8, 16)

我想要一种获得平面、列主要表示的方法,即:

array([1, 4, 2, 5, 3, 6])

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    .flatten 与参数F 一起使用。

    a = np.array([[1, 2, 3],
                  [4, 5, 6]])
    
    a.flatten('C') #row major
    >>> [1, 2, 3, 4, 5, 6]
    
    a.flatten('F') #column major
    >>> [1, 4, 2, 5, 3, 6]
    

    将其转置然后使其变平也是另一种 hacky 方式。

    a.T.reshape(-1)
    >>> [1, 4, 2, 5, 3, 6]
    

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2016-07-30
      • 2015-01-21
      相关资源
      最近更新 更多