第2章 NLP前置技术解析

2018-07-12  本文已影响0人  又双叒叕苟了一天

正则表达式

re.search(regex, string)

string中匹配到regex返回match对象,否则返回None。

import re
text_string = '我吃饭了,你吃了吗。我也吃了。那好吧。'
regex = '吃'
p_string = text_string.split('。')
for line in p_string:
    if re.search(regex, line) is not None:
        print(line)

re.findall(regex, string)

Numpy使用详解

提供以下功能:

创建数组

Numpy最核心的数据结构是ndarray,ndarray代表的是多维数组

一位数组通常称为向量,二维数组通常称为矩阵。

numpy.array()中可以直接放入一维列表或二维矩阵等。

获取Numpy中数组的维度

numpy.arange(n)生成0到n-1的数组

numpy.reshape(row, column)自动构建一个多行多列的array对象

array.shape获取数组的维度

获取本地数据

numpy.genfromtxt("prices.csv", delimiter=“数据分隔符”)从文本中读取数组

numpy数组的数据必须是相同类型的

numpy.dtype可以获得数据类型

正确读取数据

numpy.genfromtxt("prices.csv", dtype='U75', skip_header = 1, delimiter=“数据分隔符”)

dtype选择数据类型,skip_header选择跳过开头多少行

Numpy数组索引

支持list一样的定位操作例如:matrix[0, 1],选择matrix的第0行第1列。

切片

支持像list一样的切片操作:

matrix[:,1]所有行,列为1

matrix[:, 0: 2]所有行,列为0,1

matrix[1: 3, :]行为1,2,所有列

matrix[1: 3, 0: 2]行为1,2,列为0,1

数组比较

import numpy as np
matrix = np.array([
    [5, 10, 15],
    [20, 25, 30],
    [35, 40, 45]
])
second_column_25 = (matrix[:, 1] == 25)#按元素比较,可以&或者|
print(second_column_25)
#[False, True, False]
print(matrix[second_column_25, :])
#[20, 25, 30]

vector = np.array([5, 10, 11, 12])
equal_to_five_and_ten = (vector == 5) & (vector ==10)
print(equal_to_five_and_ten)
#[True, True, False, False]

替代值

import numpy as np
vector = np.array([5, 10, 15, 20])
equal_to_ten_or_five = (vector == 10) | (vector == 5)
vector[equal_to_ten_or_five] = 50
print(vector)
#[50 50 15 20]
matrix = np.array([
    [5, 10, 15],
    [20, 25, 30],
    [35, 40, 45]
])
second_column_25 = matrix[:, 1] == 25
matrix[second_column_25, 1] = 10
print(matrix)
"""
[[ 5 10 15]
 [20 10 30]
 [35 40 45]]
"""

将空置替换成‘0’

import numpy as np
matrix = np.array([
    ['5', '10', '15'],
    ['20', '25', '30'],
    ['35','40','']
])
second_column_25 = (matrix[:, 2] == '')
matrix[second_column_25, 2] = '0'
print(matrix)
"""
[['5' '10' '15']
 ['20' '25' '30']
 ['35' '40' '0']]
"""

数据类型转换

数据类型可通过参数dtype设定,也能够通过astype()转换类型

比如把string转换成float

import numpy as np
vector = np.array(["1", "2", "3"])
print(vector)
#['1' '2' '3']
vector = vector.astype(float)
print(vector)
#[1. 2. 3.]

Numpy的统计计算方法

sum()计算数组元素和。

mean()计算数组元素和。

max()计算数组最大值。

结果都为一维数组,可以指定按行或列计算,添加参数axis = 1,计算行,结果以列展示,axis = 0,计算列,结果以行展示。

import  numpy as np
vector = np.array([5, 10, 15, 20])
print(vector.sum())
#50
matrix = np.array([
    [5, 10, 15],
    [20, 10, 30],
    [35, 40, 45]
])
print(matrix.sum(axis=1))
#[ 30  60 120]
print(matrix.sum(axis=0))
#[60 60 90]

官方推荐教程

上一篇 下一篇

猜你喜欢

热点阅读