Просто явно сделайте свой текст списком
(вместо того, чтобы он был итеративным из Python), и NumPy поймет его автоматически:
>>> text = 'hello'
>>> offset = 1
>>> d[offset:offset+len(text)] = list(text)
>>> d
array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
dtype='|S1')
Нет необходимости создавать список, когда у вас есть numpy.fromstring и numpy.fromiter.
You might try Python's array
type. It will not have as high an overhead as a list
.
from array import array as pyarray
d[1:6] = pyarray('c', 'hello')