【问题标题】:Rearranging the rows in the numpy and keeping track of each row重新排列 numpy 中的行并跟踪每一行
【发布时间】:2019-03-24 14:30:34
【问题描述】:

我有一个 2000 个大小为 7 x 11 的 numpy 数组。这些行按以下变量顺序排列:pi、Tajima 的 D、Theta、尘埃峰度、J1/J2、J1、J2。即第一行总是对应pi,第二行对应田岛的D,以此类推。

我想要做的是对行进行洗牌,但还要跟踪该变量移动到哪一行。例如,田岛的 D、Theta、pi、distkurtosis、J1/J2、J1、J2。我想跟踪现在 pi 在第 3 行。我怎样才能做到这一点?请注意,我只想移动行而不是列。

另外,有没有办法在跟踪每个变量移动到的位置的同时进行所有可能的组合?

如果这是一个非常基本的问题,我深表歉意。但是,我很难找到解决这个问题的方法。

到目前为止我的代码:

def interchange(array, n, m): 
   rows = n 
   #print(array)
   #print('\n')

   # swapping of element
   for i in range(m): 
       t = array[0][i] 

       array[0][i] = array[5][i] 
       array[5][i] = t 

       t = array[4][i]
       array[0][i] = array[8][i]
       array[8][i] = t

   #print(array)
   return array

###Calling the function 
for i in range(2000):
    h1[i] = interchange(h1[i], n, m) 

【问题讨论】:

    标签: python-3.x conv-neural-network numpy-ndarray


    【解决方案1】:

    跟踪该变量移动到哪一行

    添加original_index 列,并根据原始行号为其赋予11 个连续值。

    洗牌

    添加index 列,用随机数填充它,然后对其进行排序。 如果要重新洗牌,请选择新的随机数并重新排序。

    更好的是,选择seed = 0,并用sha224(seed, row) 填充index 列,这样您就有了行的确定性函数,而不是随机的。 如果你想重新洗牌,增加seed

    有没有办法让所有可能的组合

    是的,使用permutations() 库函数填充index 列。 为每个连续的排列重新排序 index

    【讨论】:

    • 能否举个例子。我做了一些代码。但我必须手动输入索引。我在上面编辑了我的代码,所以你可以看到我的代码。我想重新排列行,然后看看我的网络是否仍然能够以正确的方式对这些矩阵进行分类。
    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2021-04-22
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    相关资源
    最近更新 更多