Write a data string to a NumPy character array?
I want to write a data string to a NumPy array. Pseudocode:
d = numpy.zeros(10, dtype = numpy.character)
d[1:6] = 'hello'
Example result:
d=
array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
dtyp开发者_运维问答e='|S1')
How can this be done most naturally and efficiently with NumPy?
I don't want for
loops, generators, or anything iterative. Can it be done with one command as with the pseudocode?
Just explicitly make your text a list
(rather than that it is iterable from Python) and NumPy will understand it automatically:
>>> text = 'hello'
>>> offset = 1
>>> d[offset:offset+len(text)] = list(text)
>>> d
array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
dtype='|S1')
There's little need to build a list when you have numpy.fromstring and 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')
精彩评论