【发布时间】:2020-07-14 13:47:26
【问题描述】:
考虑 numpy 数组 arr1 和 arr2。它们可以是任意数量的维度。例如
arr1=np.zeros([5,8])
arr2=np.ones([4,10])
我想将 arr2 放入 arr1 中,方法是在某些维度上剪掉多余的长度,或者用零填充缺失的长度。
我试过了:
arr1[exec(str(",:"*len([arr1.shape]))[1:])]=arr2[exec(str(",:"*len([arr2.shape]))[1:])]
基本相同
arr1[:,:]=arr2[:,:]
我希望最好在一行中执行此操作,并且没有“for”循环。
【问题讨论】:
-
你试过'追加'吗? arr3 = [ ] arr3.append(arr1)
-
忘记一行。即使有效,也很难阅读和调试。花一些线来确定形状,是否需要填充,并构建必要的切片。并且远离
exec;它也很难阅读和调试。slice(a,b)在构造切片索引时可以替换a:b。
标签: python numpy dimensions