Python 如何对数组列表应用填充?
我有这个函数填充函数 它接受Python 如何对数组列表应用填充?,python,arrays,numpy,padding,mfcc,Python,Arrays,Numpy,Padding,Mfcc,我有这个函数填充函数 它接受X(一个维度为(13,n)的numpy数组列表,其中n随每个数组在0-99之间变化),并返回和返回X\u new,该数组也应该是填充后所有形状均为(13,99)的numpy数组列表 X_new = [] for x in X: shp_1 = len(x[1]) if shp_1 != targetdim: X_new.append(np.pad(x[1], (0, targetdim - shp_1), 'constant', con
X
(一个维度为(13,n)
的numpy数组列表,其中n
随每个数组在0-99之间变化),并返回和返回X\u new
,该数组也应该是填充后所有形状均为(13,99)
的numpy数组列表
X_new = []
for x in X:
shp_1 = len(x[1])
if shp_1 != targetdim:
X_new.append(np.pad(x[1], (0, targetdim - shp_1), 'constant', constant_values=0))
else:
X_new.append(x)
通过检查X\u new
(13, 99) #correct dimensions
(13, 99)
(99,) #wrong
(13, 99)
(13, 99)
(13, 99)
(13, 99)
(99,)
(13, 99)
(99,)
(13, 99)
X_new.append(np.pad(X[1],(0,targetdim-shp_1),“constant”,constant_values=0))
可根据需要将列X[1]填充到99
问题在于,该函数仅将x[1]
中的填充数组追加到new\u列表,x[0]
被丢弃。
结果是,在应用填充的地方,输出形状是(99,)
,而不是所需的(13,99)
我的问题是如何使用append解决此问题
简言之,我的目标是用填充数组的列表复制列表X,也欢迎任何实现此目标的替代方法。如果
X
是数组列表,以及填充每个数组的内容,则应执行np.pad(X,…)
。为什么x[1]
?如果x
为(13,n),您可以通过x.shape[1]
获得n
。我想知道(99,)
形状是否来自x
,而不是2d?您可能需要验证所有x
@hpaulj的形状,以解决您的每个建议np.pad(x,…
不起作用,列x[1]没有变化。出现(99,)形状是因为append只能有一个参数,我们告诉函数将填充的x[1]追加到新的_列表中,但忽略x[0]。我需要某种方法将x[0]和填充的x[1]追加到新_列表中的同一行。类似于x_new.append(x[0],np.pad(x,(0,targetdim-shp_1),'constant',constant_value=0))
。我检查了所有x的形状,它们都是(13,n)。最初的描述将x
描述为数组列表,每个数组都有一个维度(13,n)
。我不明白x[0]
和x[1]
引用的是什么(除了13行中的最初几行)没有一个具体的小例子,我帮不了你。