Python列表(字符串)与numpy数组(字符串)中的字符串连接

2024-09-30 14:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的应用程序,我可以用两种方式声明字符串数组:

  1. 作为列表strArr1 = [""] * 5

  2. 作为numpy数组strArr2 = numpy.empty([5], dtype=str)

但是,当我尝试将字符连接到数组元素时,我看到了以下区别。在第一种情况下,例如

strArr1[0] += 'a'
strArr1[0] += 'b'

如我所料,['ab', '', '', '', '']。在

但在第二种情况下

^{pr2}$

给我结果['a', '', '', '', '']。在

对于numpy数组的元素,为什么连接没有按预期工作?另外,考虑到我必须一次扩展数组元素一个字符的限制,有人能建议一个高效的python方法吗?在

谢谢。在


Tags: 字符串numpy应用程序声明元素列表方式情况
2条回答

dtype='U10'声明{}是有效的,尽管没有将我的添加标记为字节,即w/o b'abc',但失败了。在

最后,为了提高效率,我将遵循neox的建议,这应该避免行为中的特定于分布的异常。在

另外,我正在使用Numpy 1.10.4 with Python 3.5.1。在

  1. Numpy要求字符串数组具有固定的最大长度。您可以使用strArr2 = numpy.empty([5], dtype='S10'),其中10是每个项目可以容纳的字符串的最大值,较长的子字符串将被截断。在

    或者strArr2 = numpy.empty([5], dtype=object),它将允许您将任意python对象存储到数组中,包括string。在

    Data type objects (dtype)

  2. 为了提高扩展字符串字符的效率,可以尝试使用Python列表作为数据类型,然后append将每个新字符添加到列表中。完成所有字符后,使用join将列表转换回字符串。

相关问题 更多 >