change the type of numpyndarray float element to string
You can't change the type of parts of an ordinary ndarray.  An ndarray requires all elements in the array to have the same numpy type (the dtype), so that mathematical operations can be done efficiently.  The only way to do this is to change the dtype to object, which allows you to store arbitrary types in each element.  However, this will drastically reduce the speed of most operations, and make some operations impossible or unreliable (such as adding two arrays).
I have an arff file as input. I read the arff file and put the element values in a numpy ndarray.Now my arff file contains some '?' as some of the elements. Basically these are property values of matrices calculated by anamod. Whichever values anamod cannot calculate it plugs in a '?' character for those. I want to do a Naive baiyes, Random Forest etc prediction for my data.  So to handle the '?' I want to use an imputer which is like : 
Imputer(missing_values='NaN', strategy='mean', axis=0)
The  missing_values above is of type string of course. My question is that how to change the type of a few numpy ndarray elements to string from float. I used my_numpy_ndarray.astype('str') == 'NaN' to check for NaN values and I could do it successfully but I am not sure how to change the type of numpyndarray float element to string.