最近在项目中用到LSTM预测,涉及到了大量的numpy数据处理工作。尤其是numpy的增加数据处理,和pandas及list很不一样。

目前,插入有两种方式:np.append和np.insert

1.np.append

能对多维的数组进行操作

例如,这里X_test是一个shape为(1,40,1)的数组,我们想向中间的维度(40)添加一个数字1,并删除第一个数字

......

我们可以执行如下命令:

np.append(X_test[:,1:],[[[1]]],axis = 1)

发现结果变成:

......

参数意义:X_test[:,1:]代表对X_test从第二个数字进行切片,插入的数据格式要和数据的格式一致,插入的数据是第二个维度(应该是1轴,0,1,2)

2.np.insert

偷懒用一下案例

a = np.array([[1,2],[3,4],[5,6]])
 
print ('第一个数组:')
print (a)
print ('\n')
 
print ('未传递 Axis 参数。 在插入之前输入数组会被展开。')
print (np.insert(a,3,[11,12]))
print ('\n')
print ('传递了 Axis 参数。 会广播值数组来配输入数组。')
 
print ('沿轴 0 广播:')
print (np.insert(a,1,[11],axis = 0))
print ('\n')
 
print ('沿轴 1 广播:')
print (np.insert(a,1,11,axis = 1))

输出结果:

第一个数组:
[[1 2]
 [3 4]
 [5 6]]


未传递 Axis 参数。 在插入之前输入数组会被展开。
[ 1  2  3 11 12  4  5  6]


传递了 Axis 参数。 会广播值数组来配输入数组。
沿轴 0 广播:
[[ 1  2]
 [11 11]
 [ 3  4]
 [ 5  6]]


沿轴 1 广播:
[[ 1 11  2]
 [ 3 11  4]
 [ 5 11  6]]

详情可见此链接:https://www.runoob.com/numpy/numpy-array-manipulation.html#numpy_oparr6

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐