gpt4 book ai didi

python - N 维直方图,包含每个 bin 中权重的最大值

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:35 24 4
gpt4 key购买 nike

我有一组 N 维的 M 点,每个点都有一个关联的“权重”值(基本上是一个 M float 组)。使用 numpy 的 histogramdd()我可以生成该集合的 N 维直方图。

如果我在 histogramdd() 中使用 weights 参数,我会得到:

the sum of the weights belonging to the samples falling into each bin.

下面的代码显示了如何创建这些数组:

import numpy as np

# N-dimensional M points.
N_dim, M = 3, 1000
points = np.random.uniform(0., 1., size=(M, N_dim))

# Weight for each point
weights = np.random.uniform(0., 1., M)

# N-dimensional histogram.
histo = np.histogramdd(points)[0]
# Histogram containing the sum of the weights in each bin.
weights_histo = np.histogramdd(points, weights=weights)[0]

取而代之的是,我需要为创建N维直方图,其中每个bin中存储的值是所有权重中的最大权重值与属于该箱内的点相关联。

即:我只需要存储在每个箱子中的最大重量,而不是所有重量的总和。

我怎样才能做到这一点?

最佳答案

scipy.stats 中有几个 binned_statistic 函数。 “max”是默认统计信息之一,但您也可以使用任何可调用的统计信息。

import numpy as np
from scipy.stats import binned_statistic_dd

# N-dimensional M points.
N_dim, M = 3, 1000
points = np.random.uniform(0., 1., size=(M, N_dim))

# Weight for each point
weights = np.random.uniform(0., 1., M)

weights_histo, bin_edges, bin_indices = binned_statistic_dd(points,
weights,
statistic=np.max,
bins=5)

print weights_histo.shape # (5,5,5)

关于python - N 维直方图,包含每个 bin 中权重的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com