Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用'numpy.digitalize'分割一个numpy数组后,如何计算每个bin的平均值?_Python_Arrays_Numpy_Scipy_Scientific Computing - Fatal编程技术网

Python 在使用'numpy.digitalize'分割一个numpy数组后,如何计算每个bin的平均值?

Python 在使用'numpy.digitalize'分割一个numpy数组后,如何计算每个bin的平均值?,python,arrays,numpy,scipy,scientific-computing,Python,Arrays,Numpy,Scipy,Scientific Computing,我有一个输入数组,它被拆分为多个存储箱,我想计算这些存储箱的平均值。让我们假设以下示例: >>> import numpy as np >>> a = np.array([1.4, 2.6, 0.7, 1.1]) 通过以下方式将其拆分为垃圾箱: 这正是我所期望的,正如您在这里更明确地看到的: >>> for i in range(len(bins)): ... f"bin where {i} <= x < {i + 1}

我有一个输入数组,它被拆分为多个存储箱,我想计算这些存储箱的平均值。让我们假设以下示例:

>>> import numpy as np
>>> a = np.array([1.4, 2.6, 0.7, 1.1])
通过以下方式将其拆分为垃圾箱:

这正是我所期望的,正如您在这里更明确地看到的:

>>> for i in range(len(bins)):
...     f"bin where {i} <= x < {i + 1} contains {a[indices == i + 1]}"
... 
'bin where 0 <= x < 1 contains [0.7]'
'bin where 1 <= x < 2 contains [1.4 1.1]'
'bin where 2 <= x < 3 contains [2.6]'
但是使用
for
循环执行此操作既不优雅(pythonic),也不高效,因为之后必须使用
np.array
将列表转换为NumPy数组


什么是NumPy方法?NumPy方法是NumPy.mean()作为函数,这是
bincount

np.bincount(indices-1,a)/np.bincount(indices-1)
输出:

array([0.7, 1.25, 2.6])
np.bincount(indices-1,a)/np.bincount(indices-1)
array([0.7, 1.25, 2.6])