Esempio n. 1
0
def _normalisedInPlace(pmf: adhoc) -> adhoc:
    total = 0
    for k, v in pmf._nvs():
        if isinstance(v, (float, int)):
            total += v
    factor = 1 / total
    for k, v in pmf._nvs():
        if isinstance(v, (float, int)):
            pmf[k] = v * factor
    return pmf
Esempio n. 2
0
def subset(a:adhoc, f2:pyfunc) -> pytuple:
    A, B = adhoc(), adhoc()
    for k, v in a._nvs():
        if f2(k, v):
            A[k] = v
        else:
            B[k] = v
    return A, B
Esempio n. 3
0
def override(a:adhoc, b:adhoc) -> adhoc:
    answer = adhoc(a)
    answer._update(b._nvs())
    return answer
Esempio n. 4
0
def sort(x: adhoc) -> adhoc:
    return adhoc(sorted(x._nvs(), key=None, reverse=False))
Esempio n. 5
0
def where(s:adhoc, bools) -> adhoc:
    assert isinstance(s, adhoc)
    answer = adhoc(s)
    for f, v in s._nvs():
        answer[f] = v[bools].view(tvarray)
    return answer
Esempio n. 6
0
def rename(d:adhoc, old, new):
    d = adhoc(d)
    d[new] = d._pop(old)
    return d
Esempio n. 7
0
def values(x:adhoc) -> pylist:
    return list(x._values())
Esempio n. 8
0
def nvs(x:adhoc) -> pydict_items:
    return x._nvs()
Esempio n. 9
0
def names(s:adhoc) -> pydict_keys:
    return s._names()
Esempio n. 10
0
def select(d: adhoc, f2) -> adhoc:
    filteredKVs = []
    for k, v in d._nvs():
        if f2(k, v): filteredKVs.append((k, v))
    return adhoc(filteredKVs)
Esempio n. 11
0
def sameNames(a:adhoc, b:adhoc) -> pybool:
    return a._names() == b._names()
Esempio n. 12
0
def inject(s:adhoc, seed, f3):
    prior = seed
    for f, v in s._nvs():
        prior = f3(prior, f, v)
    return prior
Esempio n. 13
0
def eachV(a:adhoc, fn1) -> pylist:
    answer = list()
    for v in a._values():
        answer.append(fn1(v))
    return answer
Esempio n. 14
0
def each(a:adhoc, fn2) -> adhoc:
    answer = adhoc()
    for f, v in a._nvs():
        answer[f] = fn2(f, v)
    return answer
Esempio n. 15
0
def to(x: adhoc, t: pydict) -> pydict:
    return dict(x._nvs())