Try using map like so:
import numpy
a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(lambda string: string[:3], a)
print(b) # ['app', 'foo', 'cow']
One good thing about using this method is that if you want to do more complicated things to each element in the numpy array, you can just define a more sophisticated, one-argument function that takes in an element from that array and then spits out the desired data like so:
import numpy
def some_complex_func(element):
"""
Do some complicated things to element here.
"""
# In this case, only return the first three characters of each string
return element[:3]
a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(some_complex_func, a)
print(b) # ['app', 'foo', 'cow']