का उपयोग कर गुणन मैं एक अच्छा तरीका है की दुकान और अजगर में सशर्त संभावनाओं का उपयोग करने के लिए देख रहा हूँ।संभावना टेन्सर pandas.DataFrame
मैं एक pandas
dataframe का उपयोग कर के बारे में सोच रहा हूँ। कुछ X
की सशर्त संभावनाओं P(X=A|P1=1, P2=1) = 0.2
, P(X=B|P1=2, P2=1) = 0.9
आदि कर रहे हैं, मैं dataframe
A B
P1 P2
1 1 0.2 0.8
2 0.5 0.5
2 1 0.9 0.1
2 0.9 0.1
का उपयोग करें और सीरीज के रूप में P1
और P2
के सीमांत संभावनाओं को देखते हुए हैं
1 0.4
2 0.6
Name: P1
1 0.7
2 0.3
Name: P2
मैं प्राप्त करने के लिए चाहते हैं X
की सीमांत संभावनाओं की श्रृंखला, यानी श्रृंखला
A 0.602
B 0.398
Name: X
,210
मैं क्या मैं द्वारा
X = sum(
sum(
X.xs(i, level="P1")*P1[i]
for i in P1.index
).xs(j)*P2[j]
for j in P2.index
)
X.name="X"
चाहते हैं, लेकिन यह आसानी से और अधिक निर्भरता के लिए generalizable नहीं है प्राप्त कर सकते हैं, पहले xs
level
साथ और दूसरा एक के बिना के बीच विषमता अजीब लग रहा है और हमेशा की तरह जब pandas
के साथ काम कर मैं बहुत यकीन है कि एक बेहतर समाधान है कि वहाँ यह चाल और तरीकों का उपयोग कर रहा हूँ।
pandas
इसके लिए एक अच्छा उपकरण है, क्या मुझे अपने डेटा को किसी अन्य तरीके से प्रस्तुत करना चाहिए, और यह गणना करने के लिए सबसे अच्छा तरीका क्या है, जो अनिवार्य रूप से एक अनुक्रमित टेंसर उत्पाद है, pandas
में?