PyPI package with some better syntax tools for python
pip install truefalsepython
For True
and False
values there are equal constants (like it is in C-like languages or R) TRUE, T, true
and FALSE, F, false
; for None
there is NULL
constant:
from truefalsepython import TRUE, FALSE, T, F, true, false, NULL
print(True == T) # True
print(True == TRUE) # True
print(True == true) # True
print(False == F) # True
print(False == FALSE) # True
print(False == false) # True
print(NULL) # None
is_odd(number)
is_even(number)
is_number(object)
max_fast(a, b)
min_fast(a, b)
fast_sample(objects, probs)
-- returns 1 random object fromobjects
withprobs
probabilities. It's faster thannp.random.choice(objects, 1, probs)
(example)randomTrue(prob = 0.5)
-- returnsTrue
with probabilityprob
, otherwiseFalse
Useful for debug:
set_trace()
-- like breakpointdebug(function, *args, **kwargs)
-- for debugfunction
function with those arguments
For arrays there are several R-like functions:
ifelse
— just wrapper ofnumpy.where
nrow
— returns number of rowsncol
— returns number of columnscolMeans
— returns average for each columnrowMeans
— returns average for each rowcolSums
— returns sums for each columnrowSums
— returns sums for each rowapply
— applies functionFUN
to dimension ofarr2D
array (for rows ifMARGIN == 1
and columns ifMARGIN == 2
)lapply
— applies functionfunc
for each element inarray
(array/list or something else)sapply
— likelapply
but returns numpy arraysample
— it isnp.random.choice
butreplace = False
by defaultsample_int
— sample numbers from0
ton-1
Example of usage:
import numpy as np
from truefalsepython import nrow, ncol, colMeans, rowMeans, colSums, rowSums, apply, lapply, sapply, sample, sample_int
np.random.seed(1)
# some 2D array
random_matrix = np.random.randint(8, size = (5, 3))
# how to get rows and cols counts
print(nrow(random_matrix)) # 5
print(ncol(random_matrix)) # 3
# operations for each row/column
print(rowMeans(random_matrix))
# [4. 2.66666667 5. 0.33333333 5.33333333]
print(colMeans(random_matrix))
# [2.4 4.4 3.6]
print(rowSums(random_matrix))
# [12 8 15 1 16]
print(colSums(random_matrix))
# [12 22 18]
# apply function (MARGIN is 1 for rows and 2 for columns)
print(apply(random_matrix, MARGIN = 1, FUN = np.min))
# [3 0 3 0 4]
# as u can see, it's not necessary to use FUN returns only 1 number by vector
print(apply(random_matrix, MARGIN = 2, FUN = np.sqrt))
#[[2.23606798 0. 1.73205081 0. 2. ]
# [1.73205081 2.64575131 2.23606798 0. 2.64575131]
# [2. 1. 2.64575131 1. 2.23606798]]
some_arr = np.array([1, 2, 3, 5, 4, 3, 2])
# returns list
print(lapply(some_arr, lambda x: -x))
# [-1, -2, -3, -5, -4, -3, -2]
# returns numpy array
print(sapply(some_arr, lambda x: -x))
# [-1 -2 -3 -5 -4 -3 -2]
# like np.random.choice but replace = False by default
print(sample(some_arr, 4))
# [5 3 2 1]
# sample numbers from 0 to n-1
print(sample_int(n = 100, size = 10))
# [69 46 58 12 73 98 31 53 65 96]
time_to_seconds(days = 0, hours = 0, minutes = 0, seconds = 5)
-- converts time to seconds