What is the use of weights in 'Embedding' layer in Keras library

How index 3 is converted to 2 dimensional vector here using weights of the layer.

import numpy as np
from keras.models import Sequential
from keras.layers import Embedding

model = Sequential()
model.add(Embedding(5, 2, input_length=5))

input_array = np.random.randint(5, size=(1, 5))
input_array = np.array([[3 ,3, 2 ,0, 4]])
print(input_array)
model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
print(output_array)

model.summary()

for layer in model.layers:
    print(f'Layer =======> {layer}')
    for i, weight in enumerate(layer.weights):
      if "bias" in weight.name:
          print("Bias ")
      if "bias" not in weight.name:
          print("Weight  ")
          print(weight)

See this and the 1st example.