Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 如何计算数组堆栈的平均值?_Python_Numpy - Fatal编程技术网

Python 如何计算数组堆栈的平均值?

Python 如何计算数组堆栈的平均值?,python,numpy,Python,Numpy,我的堆栈是这样的 array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[2, 2, 2], [2, 2, 2], [2, 2, 2]]]) 我想要这个结果: array([[ 1.5, 2. , 2.5], [ 3. , 3.5, 4. ], [ 4.5, 5. , 5.5]]) 我更新了我的问题,我想现在更清楚了。首先,你没有一堆2D数组

我的堆栈是这样的

array([[[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]],

       [[2, 2, 2],
        [2, 2, 2],
        [2, 2, 2]]])
我想要这个结果:

array([[ 1.5,  2. ,  2.5],
       [ 3. ,  3.5,  4. ],
       [ 4.5,  5. ,  5.5]])

我更新了我的问题,我想现在更清楚了。

首先,你没有一堆2D数组,你有三个独立的变量

幸运的是,NumPy中的大多数函数都采用类似于数组的参数。元组
(a,b,c)
非常类似于数组,它将被转换为您首先应该拥有的3D数组

无论如何,取平均值的明显功能是。正如文件所说:

默认情况下,在展平阵列上取平均值,否则在指定轴上取平均值

因此,只需指定新创建的轴0所需的轴

np.mean((a,b,c), axis=0)

在更新的问题中,您现在有一个2x3x3数组,
a
,而不是三个2x2数组,
a
b
c
,您需要第一个轴(维度为2的轴)的平均值。这是同样的事情,但稍微容易一些:

np.mean(a, axis=0)


当然,4、7和3的平均值是4.66667,而不是4。在你更新的问题中,这似乎是你想要的;在你最初的问题中…我不确定你是否想要截断或取整,或者你是否想要中值或其他东西而不是平均值,或者其他任何东西,但这些都很简单(在调用中添加
dtype=int64
,调用
.round()
在结果上,调用
中值
,而不是
均值
,等等)。

,首先,您没有2D数组的堆栈,而是有三个独立的变量

幸运的是,NumPy中的大多数函数都采用类似于数组的参数。元组
(a,b,c)
非常类似于数组,它将被转换为您首先应该拥有的3D数组

无论如何,取平均值的明显功能是。正如文件所说:

默认情况下,在展平阵列上取平均值,否则在指定轴上取平均值

因此,只需指定新创建的轴0所需的轴

np.mean((a,b,c), axis=0)

在更新的问题中,您现在有一个2x3x3数组,
a
,而不是三个2x2数组,
a
b
c
,您需要第一个轴(维度为2的轴)的平均值。这是同样的事情,但稍微容易一些:

np.mean(a, axis=0)

当然,4、7和3的平均值是4.66667,而不是4。在你更新的问题中,这似乎是你想要的;在您最初的问题中……我不确定您是否想要截断或取整,或者您是否想要中值或其他东西而不是平均值,或者其他任何东西,但这些都很简单(将
dtype=int64
添加到调用中,调用
.round()
对结果调用
中值
而不是
平均值
,等等)

根据您的输出,您似乎在寻找中值,而不是均值

>>> np.median((a,b,c), axis=0)
array([[ 1.,  5.],
       [ 6.,  4.]])
根据您的输出,您似乎在寻找中值,而不是均值

>>> np.median((a,b,c), axis=0)
array([[ 1.,  5.],
       [ 6.,  4.]])

二维数组的堆栈是一个三维数组,而不是三个独立的变量。4、7和3的平均值是4.667,而不是4。您是要截断它,还是要取整它,还是要模式的中位数或中位数或其他东西,而不是平均值?我需要一个浮点数(4.666),这只是一个示例,很抱歉混淆您的编辑从3个2x2数组更改为一个形状为2x3x3的单个数组。这是您真正想要的,还是您想要一个3x2x2阵列作为示例,还是其他什么?无论如何,您似乎希望跨轴0进行平均,就像您以前希望跨“外部轴”进行平均一样,因此您的编辑不应更改任何内容。查看我的更新答案。2D数组的堆栈将是3D数组,而不是三个单独的变量。4、7和3的平均值是4.66667,而不是4。您是要截断它,还是要取整它,还是要模式的中位数或中位数或其他东西,而不是平均值?我需要一个浮点数(4.666),这只是一个示例,很抱歉混淆您的编辑从3个2x2数组更改为一个形状为2x3x3的单个数组。这是您真正想要的,还是您想要一个3x2x2阵列作为示例,还是其他什么?无论如何,您似乎希望跨轴0进行平均,就像您以前希望跨“外部轴”进行平均一样,因此您的编辑不应更改任何内容。看看我最新的答案。你为什么要做那么多额外的工作?只需调用
np.mean
。(还有,我想他可能想要平均数,但他只想要整数,而不是浮点数。但我可能错了。)你为什么要做那么多额外的工作?只需调用
np.mean
。(另外,我想他可能想要平均值,但他只想要整数,而不是浮点数。但我可能错了。)@gustavgans:好的,这是否意味着这就是你想要的全部(当然,除了你更新的问题,现在只是
np.mean(a,axis=0)
)?@gustavgans:好的,这是否意味着这就是你想要的全部(当然,除了你更新的问题,它现在只是
np.mean(a,axis=0)
)?