Hi everybody,

I have a problem with sorting out the following function. What I expect is that 
I showed as an example below.

Two problems are encountered to achieve the result:
1) The function sometimes can't not sort as expected: I showed an example for 
that below.
2) I could not do vectorization to avoid loop.


OR, Is there another way to solve that problem??
Thanks in advance


Example:
data = ['', 12, 12, 423, '1', 423, -32, 12, 721, 345]. Expected result:  [0, 
12, 12, 423, 0, 423, -32, 12, 721, 345],  here, '' and '1' are string type I 
need to replace them by zero

The result I got: ['', 12, 12, 423, '1', 423, -32, 12, 721, 345]

import numpy as np
def func(data):
          x, i = np.unique(data, return_inverse = True)
          f = [ np.where( i == ind )[0] for ind in range(len(x)) ]
          new_data = []
          # Obtain 'data' arguments and give these data to New_data
          for i in range(len(x)):
                      if np.size(f[i]) > 1:
                                 for j in f[i]:
                                         if str(data[j]) <> '':
                                                    new_data.append(data[j])
                                              else:
                                                    data[j] = 0
          return data
--  Bakhtiyor Zokhidov
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to