Skip to content

Instantly share code, notes, and snippets.

# set up, fit, run, plot, and evaluate the RNN model
def run_RNN(flavor, ts, train, val):
# set the model up
model_RNN = RNNModel(
model=flavor,
model_name=flavor + str(" RNN"),
input_chunk_length=periodicity,
training_length=20,
%%time
# np.vectorize: large dataframe
dfY = pd.DataFrame()
dfY["x"], dfY["y"], dfY["z"] = np.vectorize(myfunc4)(dfL.B, dfL.C)
display(dfY.tail())
%%time
# list comprehension
xyz = [myfunc4(b, c) for b, c in zip(dfL.B, dfL.C)]
dfY = pd.DataFrame(xyz, columns=["x", "y", "z"])
display(dfY.tail())
%%time
# dictionary comprehension
xyz = {i: myfunc4(b, c) for i, b, c in zip(dfL.index, dfL.B, dfL.C)}
dfY = pd.DataFrame.from_dict(xyz, orient="index", columns=["x", "y", "z"])
display(dfY.tail())
%%time
# convert df to dictionary before iterating
dictL = dfL.to_dict(orient="records")
for row in dictL:
res = myfunc2a(row)
dfY = pd.DataFrame.from_dict(dictY).T
dfY.columns = ["x", "y", "z"]
display(dfY.tail())
%%time
# apply - zip - large dataframe
dfY = pd.DataFrame()
dfY["x"], dfY["y"], dfY["z"] = zip(*dfL.apply(lambda x: myfunc4(x["B"], x["C"]), axis=1))
display(dfY.tail())
%%time
# apply, large dataframe
dfY = pd.DataFrame()
dfY[["x", "y", "z"]] = dfL.apply(lambda x: myfunc4(x["B"], x["C"]), axis=1, result_type="expand")
display(dfY.tail())
%%time
# itertuples: large dataframe
dictY = dict()
for row in dfL.itertuples():
res = myfunc2(row)
dictY[row] = list(res)
dfY = pd.DataFrame()
dfY = pd.DataFrame.from_dict(dictY).T
dfY.columns = ["x", "y", "z"]
%%time
# list comprehension: almost as good as vectorization
xyz = [myfunc4(b, c) for b, c in zip(dfS.B, dfS.C)]
dfY = pd.DataFrame(xyz, columns=["x", "y", "z"])
display(dfY.tail())
%%time
# runner-up: dictionary comprehension
xyz = {i: myfunc4(b, c) for i, b, c in zip(dfS.index, dfS.B, dfS.C)}
dfY = pd.DataFrame.from_dict(xyz, orient="index", columns=["x", "y", "z"])
display(dfY.tail())