master > master: code py - utils, rel perm
This commit is contained in:
parent
3b8f80cff9
commit
c6149c230a
@ -6,6 +6,7 @@
|
|||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
from src.thirdparty.code import *;
|
from src.thirdparty.code import *;
|
||||||
|
from src.thirdparty.maths import *;
|
||||||
from src.thirdparty.types import *;
|
from src.thirdparty.types import *;
|
||||||
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -14,6 +15,7 @@ from src.thirdparty.types import *;
|
|||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'iperm',
|
'iperm',
|
||||||
|
'permute_part',
|
||||||
];
|
];
|
||||||
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -24,7 +26,22 @@ def iperm(order: List[int]) -> List[int]:
|
|||||||
'''
|
'''
|
||||||
Computes the inverse of a permutation.
|
Computes the inverse of a permutation.
|
||||||
'''
|
'''
|
||||||
n = len(order);
|
|
||||||
perm = list(enumerate(order));
|
perm = list(enumerate(order));
|
||||||
uorder = list(map(lambda x: x[0], sorted(perm, key=lambda x: x[1])));
|
uorder = list(map(lambda x: x[0], sorted(perm, key=lambda x: x[1])));
|
||||||
return uorder;
|
return uorder;
|
||||||
|
|
||||||
|
def permute_part(
|
||||||
|
x: np.ndarray,
|
||||||
|
indexes: List[int],
|
||||||
|
order: List[int],
|
||||||
|
in_place: bool = True,
|
||||||
|
) -> np.ndarray:
|
||||||
|
'''
|
||||||
|
Permutes a part of a list by a relative permutation for that part of the list.
|
||||||
|
'''
|
||||||
|
if not in_place:
|
||||||
|
x = x[:];
|
||||||
|
part = x[indexes];
|
||||||
|
part[:] = part[order];
|
||||||
|
x[indexes] = part;
|
||||||
|
return x;
|
||||||
|
Loading…
Reference in New Issue
Block a user