Попробуйте использовать библиотеку numpy. Например,
import numpy as np
# generate an array of size 10x10 with values (0-9)
arr = np.random.randint(10, size=(10, 10))
# get unique values with frequencies
values, frequencies= np.unique(arr, return_counts=True)
# calculate sum of frequencies
sum = np.sum(frequencies)
# calculate percentages
percentages = [x/sum*100 for x in frequencies]
# Example
# print(values)
# [0, 1, ...,9 ]
# print(percentages)
# [25.0, 15.0, ..., 2.5]
Чтобы адаптировать этот подход к вашему методу, попробуйте использовать
arr = np.array(type_crop)
вместо
arr = np.random.randint(10, size=(10, 10))
, предполагая, что ваш type_crop
- это 2d-массив.