Skip to content

Arrays

Displaying

Any array, be it a NumPy array, Pandas object, or even a regular list, can be displayed as a table with ptable, regardless of its size. When the function is called in a IPython environment such as Jupyter Lab, the table will become interactive.

Print out an array in various ways
vbt.ptable(df)  # (1)!
vbt.ptable(df, ipython=False)  # (2)!
vbt.ptable(df, ipython=False, tabulate=False)  # (3)!
  1. Choose an appropriate table format based on the current environment
  2. Print out the table as a string formatted by tabulate
  3. Print out the table as a string formatted by Pandas

Wrapper

A wrapper can be extracted from any array-like object with ArrayWrapper.from_obj.

Extract the wrapper from various objects
wrapper = data.symbol_wrapper  # (1)!
wrapper = pf.wrapper  # (2)!
wrapper = df.vbt.wrapper  # (3)!

wrapper = vbt.ArrayWrapper.from_obj(sr)  # (4)!
  1. data.wrapper would return an OHLC wrapper
  2. Most VBT objects have an attribute wrapper
  3. Wrapper of a Pandas Series and DataFrames can be extracted through an accessor
  4. Let VBT extract the wrapper

+

An empty Pandas array can be created with ArrayWrapper.fill.

Create an empty array with the same shape, index, and columns as in another array
new_float_df = wrapper.fill(np.nan)  # (1)!
new_bool_df = wrapper.fill(False)  # (2)!
new_int_df = wrapper.fill(-1)  # (3)!
  1. Create a floating array
  2. Create a boolean array
  3. Create an integer/a categorical array

+

A NumPy array can be wrapped with a Pandas Series or DataFrame with ArrayWrapper.wrap.

Convert NumPy array to Pandas
df = wrapper.wrap(arr)

Product

Product of multiple DataFrames can be achieved with the accessor method BaseAccessor.x. It can be called both as an instance and a class method.

Cross-join columns of multiple DataFrames
new_df1, new_df2 = df1.vbt.x(df2)  # (1)!
new_df1, new_df2, new_df3 = df1.vbt.x(df2, df3)  # (2)!
new_dfs = vbt.pd_acc.x(*dfs)  # (3)!
  1. Two DataFrames
  2. Three DataFrames
  3. Variable number of DataFrames