np.pad()应用
简单应用
在数据预处理环节,常使用constant常数方式进行补0.
# 以二维数组A为例
# (1,2)在A的第[0]轴填充(二维数组中0轴表示行),即在0轴前面填充1个宽度的2,在0轴后面填充2个宽度的3;
# (3,4)在A的第[1]在轴填充(列),即在1轴前面填充3个宽度的2,在1轴后面填充4个宽度的3;
np.pad(A,((1,2),(3,4)),'constant',constant_values = (2,3)) #constant_values表示填充值
例:pad补0
padded_reviews = np.array([sentence.append(word_index['<pad>'] * (max_length-len(sentence))) if len(sentence) <
max_length else sentence[:max_length] for sentence in encoded_reviews])
简单应用举例
>>> import numpy as np
>>> a = [1,2,3,4]
>>> b = [[1,1,1,1],[2,2,2,2],[3,3,3,3]]
>>> np.pad(a, (0,2), 'constant', constant_values=0)
array([1, 2, 3, 4, 0, 0])
>>> np.pad(a, (1,2), 'constant', constant_values=0)
array([0, 1, 2, 3, 4, 0, 0])
>>> b
[[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]]
>>> np.pad(b, ((0,2),(1,2)), 'constant', constant_values=0)
array([[0, 1, 1, 1, 1, 0, 0],
[0, 2, 2, 2, 2, 0, 0],
[0, 3, 3, 3, 3, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]])
>>> np.pad(b, ((2,2),(0,0)), 'constant', constant_values=0)
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3],
[0, 0, 0, 0],
[0, 0, 0, 0]])
详细函数信息
有不同的填充方式可以选择,函数详细信息:https://numpy.org/doc/stable/reference/generated/numpy.pad.html