Перестановка рядов в NumPy и отслеживания каждого ряда - PullRequest
1 голос
/ 24 марта 2019

У меня есть 2000 массивов размером 7 x 11. Строки расположены в следующем порядке переменных: pi, D Tajima, Theta, пылевой эксцесс, J1 / J2, J1, J2. То есть первая строка всегда соответствует пи, вторая строка соответствует букве Тадзимы и т. Д.

То, что я хочу сделать, это перемешать строки, а также отследить, в какую строку перемещена эта переменная. Например, Тадзима Д, Тета, пи, дисткуртоз, J1 / J2, J1, J2. И я хочу отследить, что теперь пи находится в ряду 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) 

1 Ответ

0 голосов
/ 24 марта 2019

отслеживание того, в какой строке эта переменная перемещена в

Вставьте столбец original_index и присвойте ему одиннадцать последовательных значений в соответствии с исходными номерами строк.

перемешать строки

Выберите столбец index, заполните его случайными числами и отсортируйте по нему. Выберите новые случайные числа и выполните повторную сортировку, если вы хотите перестановить.

Лучше, выберите seed = 0 и заполните столбец index sha224 (семя, строка), так что вместо случайной вы получите детерминированную функцию строки. Увеличьте seed, если вы хотите перетасовать.

есть ли способ сделать все возможные комбинации

Да, используйте библиотечную функцию permutations(), чтобы заполнить столбец index. Пересортируйте index для каждой последующей перестановки.

...