У меня есть N на 2 массива, как этот:Реверс определенные строки в N на 2 массива
[[9 1]
[0 5]
[6 3]
[2 4]
[3 5]
[4 1]
[2 7]
[6 8]
[7 9]
[8 0]]
После того как я сделать поиск в этой матрице, я возвращаю некоторые показатели, где необходимо переставить строки.
В моем случае у меня было w=[1 0 9 8 7]
.
Я использую этот код, чтобы переставить 2 столбца ТОЛЬКО на выбранные строки.
for x in w:
self.nodes[x] = roll (self.nodes[x], 1)
Результат правильно так:
[[1 9] *
[5 0] *
[6 3]
[2 4]
[3 5]
[4 1]
[2 7]
[8 6] *
[9 7] *
[0 8]] *
отмеченные звездочкой строки были правильно переставлять.
Я хочу знать, если есть Однострочник NumPy выражение, которое делает весь этот трюк.
Важным фактом здесь является скорость операции.
Что делать, если есть двухстрочное выражение, которое в десять раз быстрее? Вы не заинтересованы? – DSM
Мне интересно, но я подозревал, что oneliner, который не содержит выражений python, создается с помощью одной функции numpy (как это было обнаружено), и этот numpy быстрее, чем python. – alinsoar
Но если вы знаете что-то так же удобно, как 2 из этих ответов, напишите здесь;). – alinsoar