如何将数据字符串写入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 个回答
1
你可以试试Python里的array
类型。它的开销比list
要小一些。
from array import array as pyarray
d[1:6] = pyarray('c', 'hello')
2
其实用numpy.fromstring和numpy.fromiter的时候,没必要再去创建一个列表了。
3
只需要把你的文本明确地变成一个 list
(而不是让它从Python中可迭代),这样 NumPy 就会自动识别了:
>>> text = 'hello'
>>> offset = 1
>>> d[offset:offset+len(text)] = list(text)
>>> d
array(['', 'h', 'e', 'l', 'l', 'o', '', '', '', ''],
dtype='|S1')