开发者

Write a data string to a NumPy character array?

开发者 https://www.devze.com 2022-12-12 09:42 出处:网络
I want to write a data string to a NumPy array. Pseudocode: d = numpy.zeros(10, dtype = numpy.character)

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')
0

精彩评论

暂无评论...
验证码 换一张
取 消