如果这是源代码。您将如何编辑f_oneway函数行,这样您就不必每次都手动指定弓箭手名称了
import numpy as np
from scipy import stats
data = np.rec.array([
('Pat', 5),
('Pat', 4),
('Pat', 4),
('Pat', 3),
('Pat', 9),
('Pat', 4),
('Jack', 4),
('Jack', 8),
('Jack', 7),
('Jack', 5),
('Jack', 1),
('Jack', 5),
('Alex', 9),
('Alex', 8),
('Alex', 8),
('Alex', 10),
('Alex', 5),
('Alex', 10)], dtype = [('Archer','|U5'),('Score', '<i8')])
f, p = stats.f_oneway(data[data['Archer'] == 'Pat'].Score,
data[data['Archer'] == 'Jack'].Score,
data[data['Archer'] == 'Alex'].Score)
print ('P value:', p, '\n')
我尝试了以下操作,但出错了,说'没有名叫Pat的字段'
f, p = stats.f_oneway(data[data['Archer']].Score)
帮助!
我认为就是这样。显然f_oneway
无法应付array([5, 4, 4, 3, 9, 4], dtype=int64)
类型的事物;它可以处理列表。
import numpy as np
from scipy import stats
data = np.rec.array([ ('Pat', 5), ('Pat', 4), ('Pat', 4),('Pat', 3), ('Pat', 9), ('Pat', 4),('Jack', 4), ('Jack', 8), ('Jack', 7),('Jack', 5), ('Jack', 1), ('Jack', 5), ('Alex', 9),('Alex', 8), ('Alex', 8), ('Alex', 10), ('Alex', 5), ('Alex', 10)], dtype = [('Archer','|U5'), ('Score', '<i8')])
f, p = stats.f_oneway(*[list(data[data['Archer']==name].Score) for name in ['Pat', 'Jack', 'Alex']])
f, p = stats.f_oneway(*[list(data[data['Archer']==name].Score) for name in set(data['Archer'])])
print ('P value:', p, '\n')
星号在此表达式中是什么意思? f,p = stats.f_oneway(* [list(data [data [data ['Archer'] == name] .Score)。[Pat','Jack','Alex']]]]