【发布时间】:2016-11-29 17:44:32
【问题描述】:
我使用下面的代码来创建一个 numpy-ndarray。该文件有 9 列。我明确键入每一列:
dataset = np.genfromtxt("data.csv", delimiter=",",dtype=('|S1', float, float,float,float,float,float,float,int))
现在我想获取每列的一些描述性统计信息(最小值、最大值、标准差、平均值、中值等)。不应该有一个简单的方法来做到这一点吗?
我试过这个:
from scipy import stats
stats.describe(dataset)
但这会返回错误:TypeError: cannot perform reduce with flexible type
如何获得创建的 NumPy 数组的描述性统计数据?
【问题讨论】:
-
我认为错误是因为您的数组中有多个
dtype。特别是一个字符串在统计上描述是有问题的。也许您可以遍历每一列,并分别描述这些列? -
感谢您的回答。例如,我如何才能访问数组的第二列?我尝试了
stats.describe(dataset[2]),但它产生了与我的 OP 中相同的错误。 -
我怀疑我的阵列可能有问题?基于 CSV 文件的正确 numpy 数组应该是什么样子?我的看起来像这样,如果我打印它:pastebin.com/MYyqbSG0
-
@beta 如果你正在处理非统一数据(看起来你是),你应该看看
pandas,它对于这类事情要强大得多。 -
如果没有给出字段名称,则默认字段名称为
'f0'、'f1'等。所以不要使用stats.describe(dataset[2]),而是使用stats.describe(dataset['f2'])。
标签: python numpy multidimensional-array scipy