Python - 尝试使用numpy.mean时“无法使用灵活类型执行reduce”

Posted

技术标签:

【中文标题】Python - 尝试使用numpy.mean时“无法使用灵活类型执行reduce”【英文标题】:Python - "cannot perform reduce with flexible type" when trying to use numpy.mean 【发布时间】:2013-12-02 09:19:52 【问题描述】:

当我尝试计算列的平均值时,我不断收到“无法使用灵活类型执行 reduce”,文件被读取得很好(任何行/列中都没有缺失值)但是当我排队时: Brain_wt_mean = np.mean(ifile axis=0) 然后 Python 2.7.5 不喜欢它。我在 Spyder IDE 中使用它。非常感谢您的帮助。

import os
import numpy as np

if __name__ == "__main__":
    try:        
        curr_dir = os.getcwd()
        file_path = curr_dir + '\\brainandbody.csv'
        ifile = np.loadtxt('brainandbody.csv', delimiter=',', skiprows=1, dtype=[('brainwt', 'f8'), ('bodywt', 'f8')])

    except IOError:
        print "The file does not exist, exiting gracefully"        

Brain_wt_mean = np.mean(ifile axis=0)




### BELOW is a sample of the csv file ######

Brain Weight    Body Weight
3.385   44.5
0.48    15.5
1.35    8.1
465 423
36.33   119.5
27.66   115
14.83   98.2
1.04    5.5

【问题讨论】:

有些逗号在复制粘贴后无法保存吗?您的示例不是逗号分隔的,但您的 loadtxt 设置 delimiter=','ifile axis=0 不是有效的 Python 【参考方案1】:

当您使用这样的结构化数组时,您会失去一些原本拥有的灵活性。不过,您可以在选择合适的部分后取平均值:

>>> ifile
array([(3.385, 44.5), (0.48, 15.5), (1.35, 8.1), (465.0, 423.0),
       (36.33, 119.5), (27.66, 115.0), (14.83, 98.2), (1.04, 5.5)], 
      dtype=[('brainwt', '<f8'), ('bodywt', '<f8')])
>>> ifile["brainwt"].mean()
68.759375000000006
>>> ifile["bodywt"].mean()
103.66249999999999

我几乎每天都使用numpy,但是在处理我想要命名列的那种数据时,我认为pandas 库使事情变得更加方便,并且它的互操作性非常好。值得一看。示例:

>>> import pandas as pd
>>> df = pd.read_csv("brainandbody.csv", skipinitialspace=True)
>>> df
   Brain Weight  Body Weight
0         3.385         44.5
1         0.480         15.5
2         1.350          8.1
3       465.000        423.0
4        36.330        119.5
5        27.660        115.0
6        14.830         98.2
7         1.040          5.5
>>> df.mean()
Brain Weight     68.759375
Body Weight     103.662500
dtype: float64

【讨论】:

非常感谢您的快速回复,ifile["brainwt"].mean() 有效!

以上是关于Python - 尝试使用numpy.mean时“无法使用灵活类型执行reduce”的主要内容,如果未能解决你的问题,请参考以下文章

自定义 numpy 类型导致 numpy.mean 崩溃

Numpynumpy.mean() 的用法

numpy.mean

如何在 Python 中使用带有“None”值的 numpy?

numpy中的mean()函数

python相关性分析如何生成两个相关性最强的两门?