Я очень старался, я мог сделать это, как если бы входные массивы были A, B, C. Я был в состоянии генерировать P (C / A), P (C / B). Но актуальная проблема заключается в генерации P (C | A, B). И никакие входные массивы не фиксируются. может варьироваться от 1-5. Пожалуйста, помогите мне с логикой c, чтобы код мог быть надежным.
Вот мой код:
def conditional_probabilities(*argv):
with_respect_to = argv[-1]
result = []
for arg in argv:
if (arg.all() == with_respect_to.all()):
break
else:
unique = arg.unique()
for i in unique:
total = 0
series = pandas.Series(dtype='float64')
for j in range(0, len(arg)):
if arg[j] == i:
total = total + 1
series.at[total] = with_respect_to[j]
count = series.value_counts()
for j in with_respect_to.unique():
try:
result.append([i, j, round(count[j]/total,3)])
except KeyError as e:
result.append([i, j, round(0/total,3)])
return result
Косвенно это генерирует Таблицу условных вероятностей.