【问题标题】:Numpy python R eqivalent indexingNumpy python R等效索引
【发布时间】:2019-07-18 21:36:06
【问题描述】:
import numpy as np

o = np.array([

              [
              [1,2,3,4],
              [5,6,7,8]
              ],

              [
              [9,10,11,12],
              [13,14,15,16]
              ]

             ])
print(o.flatten())

# array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16])

它首先将每个矩阵的行展平

但我希望它首先展平每个矩阵的列,以便打印 [1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16]

我尝试搜索,发现将“F”作为参数传递,但这给出了 [1,5,9,13,2,6,10,14,3,7,11,15,4,8, 12,16] 也就是说它没有先完成就切换到另一个矩阵。

简而言之,我想找到与 R 的双括号索引等效的 python

someData <- rep(0, 2*3*4);
ar <- array(someData, c(2, 3, 4));  
ar[1,1,1] = 1
ar[1,2,1] = 2
ar[1,3,1] = 3

ar[2,1,1] = 4
ar[2,2,1] = 5
ar[2,3,1] = 6

ar[1,1,2] = 7
ar[1,2,2] = 8
ar[1,3,2] = 9
print(ar[[1]]) # 1
print(ar[[2]]) # 4
print(ar[[3]]) # 2
print(ar[[4]]) # 5 
print(ar[[5]]) # 3
print(ar[[6]]) # 6

【问题讨论】:

    标签: python r numpy data-science


    【解决方案1】:

    您可以先在第二个维度上执行np.concatenate,然后按照您也提到的列主要顺序执行flatten

    np.concatenate(o, axis=1).flatten(order='f')
    

    输出

    array([ 1,  5,  2,  6,  3,  7,  4,  8,  9, 13, 10, 14, 11, 15, 12, 16])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 2014-05-31
      • 1970-01-01
      • 2016-06-04
      • 2021-12-28
      • 1970-01-01
      • 2021-09-10
      相关资源
      最近更新 更多