gpt4 book ai didi

python - Numpy 大小要求

转载 作者:行者123 更新时间:2023-12-01 09:27:43 25 4
gpt4 key购买 nike

我最近偶然发现了一种我不理解的奇怪的 NumPy 行为:我有一个实验列表。每个实验本身也是一个样本列表。所以我最终得到了一份 list 。实验是在各种条件下进行的,因此其中一些实验包含的样本比其他实验多。它们的共同点是都包含超过 100 个样本。

现在我想计算每个实验样本的平均值和标准差。对我有用的是

sDevPD = [np.std(x) for x in f0PD]

我简单地迭代实验列表中的所有列表f0PD。好的,现在我尝试使用 numpy:

sDevPD = np.std(f0PD, axis = 1)

这不起作用,numpy 将抛出IndexError:元组索引超出范围。我试图尽我所能地追踪错误,并且发现仅当实验大小不同时 numpy 函数才会抛出此错误。如果我有一个长度相同的列表列表,则一切正常。这同样适用于np.mean

有人可以向我解释一下这种行为吗?我认为计算不同大小的列表的标准差是绝对合法的。

最佳答案

Numpy 确实是一个矩阵库。它不适用于可变长度数组。所有操作都必须能够广播,但您的示例中并非如此...不要使用 Numpy,而是尝试使用 Pandas。它依赖 numpy 进行基本运算。例如:

import pandas as pd
import numpy as np

f0PD = []
for _ in range(10): # here I assume f0PD is a list of 10 lists
f0PD.append(np.arange(np.random.randint(20))) # this creates lists of random size, up to 20

df = pd.DataFrame(f0PD)
df.std(axis=1) # this works well, regardless of the size of elementary lists

关于python - Numpy 大小要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50229849/

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