Python 2.7 巨蟒;无法使用“灵活类型”执行reduce;当试图使用numpy.mean时
当我试图计算一列的平均值时,我总是得到“无法使用灵活类型执行reduce”,对此我束手无策,文件读取得很好(任何行/列中都没有缺失值),但当我放入以下行时: Brain_wt_mean=np.mean(如果文件轴=0),那么Python 2.7.5不喜欢它。我在Spyder IDE中使用它。谢谢你的帮助Python 2.7 巨蟒;无法使用“灵活类型”执行reduce;当试图使用numpy.mean时,python-2.7,numpy,scipy,Python 2.7,Numpy,Scipy,当我试图计算一列的平均值时,我总是得到“无法使用灵活类型执行reduce”,对此我束手无策,文件读取得很好(任何行/列中都没有缺失值),但当我放入以下行时: Brain_wt_mean=np.mean(如果文件轴=0),那么Python 2.7.5不喜欢它。我在Spyder IDE中使用它。谢谢你的帮助 import os import numpy as np if __name__ == "__main__": try: curr_dir = os.g
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
当您使用这样的结构化阵列时,您将失去一些原本具有的灵活性。您可以在选择适当的工件后取平均值,但:
>>> 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
复制粘贴后是否有一些逗号失效?您的示例不是逗号分隔的,但是您的
loadtxt
设置了delimiter='、'
和ifile axis=0
无效。python非常感谢您的快速回复,ifile[“brainwt”]。mean()有效!
>>> 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