Numpy 用chararray做字符串操作

用chararray做字符串操作,NumPy中有一个chararray对象,可以专门用来存放字符串。chararrayndarray的子类,具有专门对字符串进行操作的方法。我们将从Python的官网下载一些文本,并用chararray中的方法对文本进行处理。相对于常规的NumPy数组,使用chararray的优点如下。

  • 用索引获取数组元素时,字符串中多余的空格会自动删除。
  • 做比较运算时,字符串后端的空格会自动删除。
  • 支持向量化的字符串操作,不需要使用循环语句。

具体步骤

让我们开始创建chararray数组。

  1. 创建chararray数组。

以视图的方式,创建chararray数组。

carray = numpy.array(html).view(numpy.chararray)

  1. 把TAB字符替换为空格。

使用expandtabs函数,把TAB字符替换为空格。使用该函数时,可以通过输入参数指定TAB对应的空格数,默认值是8。

carray = carray.expandtabs(1)

  1. 按行分割字符串。

使用splitlines函数,按行分割字符串。

carray = carray.splitlines()

本攻略的完整代码如下。

import urllib2
import numpy
import re

response = urllib2.urlopen('http://python.org/')
html = response.read()
html = re.sub(r'<.*?>', '', html)
carray = numpy.array(html).view(numpy.chararray)
carray = carray.expandtabs(1)
carray = carray.splitlines()
print carray

攻略小结

在本攻略中,我们实际体验了特殊类型数组chararray类的用法。该类提供了若干向量化的字符串操作方法,也提供了便利的针对空格的默认处理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程