获取对象数组的标准

2024-04-19 11:32:07 发布

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

我有一个30x30数组,每个元素中都有一个400值数组。你知道吗

有没有一种简单的方法来获取整个“立方体”的标准偏差,或者将其重新铸造为30x30x400立方体?你知道吗

In [295]: data.shape
Out[295]: (30, 30)

In [296]: data[0,0].shape
Out[296]: (400,)

std(data)会得到一个400形状的数组,因此它不会将它应用于整个事物。结果的标准差是不一样的。你知道吗

下面是这样一个数组的例子,以及如何创建它。你知道吗

a = np.zeros([3,3]).astype(object)

for i in range(3):
for j in range(3):
a[i,j] = np.array([0,i,j])


In [364]: a
Out[364]: 
array([[array([0, 0, 0]), array([0, 0, 1]), array([0, 0, 2])],
       [array([0, 1, 0]), array([0, 1, 1]), array([0, 1, 2])],
       [array([0, 2, 0]), array([0, 2, 1]), array([0, 2, 2])]], dtype=object)

In [365]: a.shape
Out[365]: (3, 3)

In [366]: a[0,0]
Out[366]: array([0, 0, 0])

Tags: 方法in元素fordataobjectnprange
2条回答

如果您只关心std,那么针对您的具体情况,这里有一个简单的解决方案:

np.std(np.array([i for i in a.flatten()]).flatten())

这是我经过一番尝试后得到的。 欢迎改进

omega = x
for dims in range(len(x.shape)):
    omega = np.concatenate(omega)

y = np.reshape(omega,[3,3,4])
print(y)

相关问题 更多 >