def fixed_vectors_encoding(index_encoded_sequences, letter_to_vector_df):
(num_sequences, sequence_length) = index_encoded_sequences.shape<EOL>target_shape = (<EOL>num_sequences, sequence_length, letter_to_vector_df.shape[<NUM_LIT:0>])<EOL>result = letter_to_vector_df.iloc[<EOL>index_encoded_sequences.flatten()<EOL>].values.reshape(target_shape)<EOL>return result<EOL>
Given a `n` x `k` matrix of integers such as that returned by `index_encoding()` and
a dataframe mapping each index to an arbitrary vector, return a `n * k * m`
array where the (`i`, `j`)'th element is `letter_to_vector_df.iloc[sequence[i][j]]`.

The dataframe index and columns names are ignored here; the indexing is done
entirely by integer position in the dataframe.

Parameters
----------
index_encoded_sequences : `n` x `k` array of integers

letter_to_vector_df : pandas.DataFrame of shape (`alphabet size`, `m`)

Returns
-------
numpy.array of integers with shape (`n`, `k`, `m`)