对于我的应用程序,我可以用两种方式声明字符串数组:
作为列表strArr1 = [""] * 5
或
作为numpy数组strArr2 = numpy.empty([5], dtype=str)
但是,当我尝试将字符连接到数组元素时,我看到了以下区别。在第一种情况下,例如
strArr1[0] += 'a'
strArr1[0] += 'b'
如我所料,['ab', '', '', '', '']
。在
但在第二种情况下
^{pr2}$给我结果['a', '', '', '', '']
。在
对于numpy数组的元素,为什么连接没有按预期工作?另外,考虑到我必须一次扩展数组元素一个字符的限制,有人能建议一个高效的python方法吗?在
谢谢。在
用}是有效的,尽管没有将我的添加标记为字节,即w/o
dtype='U10'
声明{b'abc'
,但失败了。在最后,为了提高效率,我将遵循neox的建议,这应该避免行为中的特定于分布的异常。在
另外,我正在使用
Numpy 1.10.4 with Python 3.5.1
。在Numpy要求字符串数组具有固定的最大长度。您可以使用
strArr2 = numpy.empty([5], dtype='S10')
,其中10
是每个项目可以容纳的字符串的最大值,较长的子字符串将被截断。在或者
strArr2 = numpy.empty([5], dtype=object)
,它将允许您将任意python对象存储到数组中,包括string
。在见Data type objects (dtype)。
为了提高扩展字符串字符的效率,可以尝试使用Python列表作为数据类型,然后
append
将每个新字符添加到列表中。完成所有字符后,使用join
将列表转换回字符串。相关问题 更多 >
编程相关推荐