2024-03-29 11:40:19 发布
网友
我尝试使用np.meshgrid创建新矩阵,将类似seq.shape = (a,b,c)的矩阵转换成{},其中新成对矩阵的最后一个维度是vi,(vi+vj)/2和{}(vi,vj来自{})的串联。但是np.meshgrid似乎不适用于高维矩阵。有没有别的接线员能让这一切发生?在
np.meshgrid
seq.shape = (a,b,c)
vi
(vi+vj)/2
vj
您需要像这样广播您的输入:
>>> import numpy as np >>> >>> a, b, c = 2, 3, 4 >>> seq = np.arange(a*b*c).reshape(a, b, c) >>> >>> weight = np.linspace(0, 1, 3) >>> result = seq[..., None, :, None] * weight + seq[:, None, ..., None] * weight[::-1] >>> result.shape (2, 3, 3, 4, 3) >>> result array([[[[[ 0., 0., 0.], [ 1., 1., 1.], [ 2., 2., 2.], [ 3., 3., 3.]], [[ 4., 2., 0.], [ 5., 3., 1.], [ 6., 4., 2.], [ 7., 5., 3.]], [[ 8., 4., 0.], [ 9., 5., 1.], [10., 6., 2.], [11., 7., 3.]]], ... [[[12., 16., 20.], [13., 17., 21.], [14., 18., 22.], [15., 19., 23.]], [[16., 18., 20.], [17., 19., 21.], [18., 20., 22.], [19., 21., 23.]], [[20., 20., 20.], [21., 21., 21.], [22., 22., 22.], [23., 23., 23.]]]]])
您需要像这样广播您的输入:
相关问题 更多 >
编程相关推荐