[英]numpy add column of values to multidimentional array for differentiation
我有一个形状数组,如下所示:(162060,2,128)我使用numpy.diff(步骤等于1)执行了微分,现在微分数组的形状为:(162060,2,127),我希望以前的形状为将零添加到每个元素的2个数组的第一列,即(2,127)->(2,128)
我该如何执行呢? 使用numpy.concatenate并没有帮助,因为它添加到结尾,我希望零开头
您正在寻找numpy插入。 在此处阅读文档 。
更新资料
要使用numpys插入函数,请按照以下步骤操作:
X = np.insert(X, pos, obj, axis=0)
X指定要插入的目标对象
pos指定插入位置
obj指定要插入的内容
axis = 0是可选的,它指定沿其插入值的轴。 如果axis为None,则arr首先被展平。
如果要添加零(例如),可以使用numpy.pad()
函数:
import numpy as np
np.pad(array_to_expand, ((0, 0), (0, 0), (1, 0)), 'constant', constant_values=0)
另一个选择是使用numpy.dstack
:
np.dstack([np.zeros((162060, 2)), array_to_expand])
要么,
np.dstack([np.zeros(array_to_expand.shape[:2]), array_to_expand])
啊,最后是numpy.concatenate
:
np.concatenate([np.zeros((162060, 2, 1)), array_to_expand], axis=2)
要么,
np.concatenate([np.zeros(array_to_expand.shape[:2] + (1,)), array_to_expand], axis=2)
虽然您可以扩展其他答案的方式(或者适当使用串联),但从代码可读性的角度来看,我认为创建写大小的数组并显式地讲更有意义。区分成那个数组。 对我来说,这是最易读的版本。
derivatives = np.zeros_like(values)
derivatives[:,:,1:] = np.diff(values)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.