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', '', '', '', ''],
dtype='|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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With