先学习一个函数:
np.unique()
返冋其参数数组中所有不同的值,并且按照从小到大的顺序排列。它有两个可选参数:
return_index : Ture表示同时返回原始数组中的下标。
Return_inverse: True表示返冋重建原始数组用的下标数组。
现在考虑多个属性,gender,Pclass,price,所以用一个2× 3× 4的array来存储。
price以40为界,每个属性中的值进行遍历挑选。
fare_ceiling = 40
data[ data[0::,9].astype(np.float) >= fare_ceiling, 9 ] = fare_ceiling - 1.0
fare_bracket_size = 10
number_of_price_brackets = fare_ceiling / fare_bracket_size
number_of_classes = 3
number_of_classes = len(np.unique(data[0::,2]))
survival_table = np.zeros((2, number_of_classes, number_of_price_brackets))
for i in xrange(number_of_classes):
for j in xrange(number_of_price_brackets):
women_only_stats = data[(data[0::,4] == "female")
&(data[0::,2].astype(np.float)
== i+1)
&(data[0:,9].astype(np.float)
>= j*fare_bracket_size)
&(data[0:,9].astype(np.float)
< (j+1)*fare_bracket_size)
, 1]
men_only_stats = data[(data[0::,4] != "female")
&(data[0::,2].astype(np.float)
== i+1)
&(data[0:,9].astype(np.float)
>= j*fare_bracket_size)
&(data[0:,9].astype(np.float)
< (j+1)*fare_bracket_size)
, 1]
survival_table[0,i,j] = np.mean(women_only_stats.astype(np.float))
survival_table[1,i,j] = np.mean(men_only_stats.astype(np.float))