2024-03-29 09:03:13 发布
网友
我有一个形状为(128,116,116,1)的数组,其中第1维是受试者的数量,第2维和第3维是数据
(128,116,116,1)
我试图计算所有128名受试者在每个位置(即(0,0)、(0,1)、(1,0)等,直到(116116))的方差(与平均值的平方偏差),形成一个形状为(116,116)的数组
(116,116)
有人能告诉我如何做到这一点吗
谢谢大家!
假设我们有一个多维列表a的形状(3,2,2)
a
(3,2,2)
import numpy as np a = [ [ [1,1], [1,1] ], [ [2,2], [2,2] ], [ [3,3], [3,3] ], ] np.var(a, axis = 0) # results in: > array([[0.66666667, 0.66666667], > [0.66666667, 0.66666667]])
如果您想有效地计算所有128个主题(即axis0)的方差,我看不到使用statistics包的方法,因为它不接受多列表作为输入。因此,您必须编写自己的代码/逻辑,并在主题上添加循环 但是,使用^{} 函数,我们可以轻松计算所有128个主题中每个“数据点”(索引元组)的方差
0
statistics
旁注:您提到了statistics.variance。但是,仅当您从您链接的文档中提到的人群中采集样本时,才可使用该方法。如果您选择手动路径,您将使用statistics.pvariance,因为我们是在整个数据集上计算它的。 这里可以看出区别:
statistics.variance
statistics.pvariance
statistics.pvariance([1,2,3]) > 0.6666666666666666 # (correct) statistics.variance([1,2,3]) > 1 # (incorrect) np.var([1,2,3]) > 0.6666666666666666 # (np.var also gives the correct output)
假设我们有一个多维列表
a
的形状(3,2,2)
如果您想有效地计算所有128个主题(即axis}
函数,我们可以轻松计算所有128个主题中每个“数据点”(索引元组)的方差
0
)的方差,我看不到使用statistics
包的方法,因为它不接受多列表作为输入。因此,您必须编写自己的代码/逻辑,并在主题上添加循环但是,使用^{
旁注:您提到了
statistics.variance
。但是,仅当您从您链接的文档中提到的人群中采集样本时,才可使用该方法。如果您选择手动路径,您将使用statistics.pvariance
,因为我们是在整个数据集上计算它的。 这里可以看出区别:相关问题 更多 >
编程相关推荐