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