Yes, you are correct in your assumption that Python uses 0-based indices.
Your labels should indeed be in the range [0, nb_classes-1].
Since your map starts at the index 1, you should just add 1 to your label:
idx_to_class = {
    1: "pink primrose",
    2: "hard-leaved pocket orchid",
    3: "canterbury bells",
    4: "sweet pea",
    5: "english marigold",
    6: "tiger lily"
}

label = 0
sample_class = idx_to_class[label+1]

No need to create another mapping.
Also as a small side note: it seems you are using the whole data for your training, validation, and test datasets, since you are just changing the transformations.