我想将数据字符串写入NumPy数组。伪代码:
d = numpy.zeros(10, dtype = numpy.character)
d[1:6] = 'hello'
示例结果:
d=
array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
dtype='|S1')
如何使用NumPy最自然有效地完成这项工作?
我不希望for
循环,生成器或任何迭代。可以使用一个命令来完成伪代码吗?
答案 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')