Hi,

There seems to be a bug in set_string_function when resetting the formatting function to the default. After doing that the dtype of the array that is printed is the character string, not the numpy type. Example:

In [1]: a=arange(10, dtype=uint16)

In [2]: a
Out[2]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=uint16)

In [3]: set_string_function(lambda x: str(x*2))

In [4]: a
Out[4]: [ 0  2  4  6  8 10 12 14 16 18]

In [5]: set_string_function(None)   # reset to default

In [6]: a
Out[6]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'H')


The functionality to reset to default was introduced here: http://projects.scipy.org/numpy/ticket/351
Should I open a trac ticket, or am I missing something here?

Cheers,
Ralf