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行中的最初几行)没有一个具体的小例子,我帮不了你。