计算python中不同数组出现的概率

2024-04-24 16:37:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个不同的数组。每个数组的单元格包含不同的值。如下所示:

array1 = array([[2702.703, 2702.703, 500.025],
          [1060.265, 300.2565, 2702.703],
          [2702.703, 2702.703, 2702.703]],
          dtype=float32)
array2 = array([[1000.235, 2702.703, 500.025],
          [1060.265, 300.2565, 2702.703],
          [2702.703, 2702.703, 200.2655]],
          dtype=float32)
array3 = array([[2702.703, 1500.326, 500.025],
          [4520.22, 300.2565, 2702.703],
          [2702.703, 1245, 2702.703]],
          dtype=float32)

我想计算(通过应用小于1000的条件)在3个数组的单元格中值的每个位置的发生概率,并将计算出的概率值存储在新数组中。 例如,输出:

array4 = array([[0.03, 0.2, 0.01],
          [0.22, 0.71, 0.9],
          [0.15, 0.45, 0.5]],
          dtype=float32)

任何相关的建议都很有帮助


Tags: 数组概率条件array建议dtypefloat32array1
1条回答
网友
1楼 · 发布于 2024-04-24 16:37:56

这里有一种方法可以计算数组中某个位置满足条件的值的百分比:

# First, stack all of the arrays along a new dimension (dimension 2)
stacked = np.stack([array1, array2, array3])
# Then apply your condition and get the mean of the values along your new dimension
# The mean function works by treating each True as a 1 and each False as a 0
result = (stacked < 1000).mean(axis=2)
print(result)

输出

   array([[0.33333333, 0.33333333, 0.        ],
          [0.33333333, 0.33333333, 0.33333333],
          [0.33333333, 0.33333333, 0.        ]])

相关问题 更多 >