1) The default behaviour for numpy arrays of strings is compatible with Python3's string model: i.e. fully unicode supporting, and with a character oriented interface. i.e. if you do::
arr = np.array(("this", "that",))you get an array that can store ANY unicode string with 4 or less characters.
and arr[1] will return a native Python3 string object.This is the use-case for "casual" numpy users -- not the folks writing H5py and the like, or the ones writing Cython bindings to C++ libs.