将数据字符串写入NumPy字符数组?

时间:2009-11-18 21:29:01

标签: python numpy

我想将数据字符串写入NumPy数组。伪代码:

d = numpy.zeros(10, dtype = numpy.character)
d[1:6] = 'hello'

示例结果:

d=
  array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
        dtype='|S1')

如何使用NumPy最自然有效地完成这项工作?

我不希望for循环,生成器或任何迭代。可以使用一个命令来完成伪代码吗?

3 个答案:

答案 0 :(得分:3)

只需明确地将文字设为list(而不是可以从Python迭代),NumPy会自动理解它:

>>> text = 'hello'
>>> offset = 1
>>> d[offset:offset+len(text)] = list(text)
>>> d

array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
      dtype='|S1')

答案 1 :(得分:2)

当你有numpy.fromstring和numpy.fromiter时,没有必要建立一个列表。

答案 2 :(得分:1)

您可以尝试使用Python的array类型。它的开销不会高于list

from array import array as pyarray
d[1:6] = pyarray('c', 'hello')