Python 如何将一维阵列与三维阵列中的一个其他阵列相乘?
我有一个一维数组,我想把它和三维数组的第一个轴相乘 例如,我的1D数组的长度为710,我只想将其与同样长度为710的3D数组的第一个轴相乘。我不希望它与其他两个轴相乘(因为它们的大小不同,我会得到一个错误) 我该怎么做 下面是示例代码:Python 如何将一维阵列与三维阵列中的一个其他阵列相乘?,python,arrays,function,multidimensional-array,Python,Arrays,Function,Multidimensional Array,我有一个一维数组,我想把它和三维数组的第一个轴相乘 例如,我的1D数组的长度为710,我只想将其与同样长度为710的3D数组的第一个轴相乘。我不希望它与其他两个轴相乘(因为它们的大小不同,我会得到一个错误) 我该怎么做 下面是示例代码: data = sla_standard[:,:,:] window = w print(window.shape) print(data.shape) #GOAL: multiply the window with t
data = sla_standard[:,:,:]
window = w
print(window.shape)
print(data.shape)
#GOAL: multiply the window with the first axis of my data array
what is printed from console:
(710,)
(710, 81, 320)
两个阵列应具有相同的维度(即,应为3D)。一旦为true,numpy将自动丢失维度(即,只有一行/列的维度将被拉伸以匹配其他数组)。使用
窗口[:,无,无]
将其转换为三维:
>>> window = np.random.random((710))
>>> data = np.random.random((710, 81, 320))
>>> (window[:, None, None] * data).shape
(710, 81, 320)