首页 > 解决方案 > 如何将高维数组广播成较小维数组?

问题描述

我希望将不同形状的数组广播到同一个数组中。

假设我有两个输入和 10 个点。input1是一个标量,input2是一个 3 x 3 张量。我想两个都住在input_array

import numpy as np

input_array = np.zeros((10,2))
input1 = np.random.rand(10)      # scalar
input2 = np.random.rand(3,3,10)  # 3x3 tensor  

我想做这个:

input_array[:,0] = input1  # this works 
input_array[:,1] = input2  # this doesn't because input2's dimension is different

我尝试过围绕轴移动input2,也尝试过使用 pandas.DataFrame。我认为您可以在将 3*3 张量转换为列表时执行此操作,但这会导致下游出现不需要的行为。最后,我可以使张量变平,但我并不热衷于这样做。

总而言之,可能有一些方法可以解决这个问题,但可以做到吗?

标签: pythonarraysnumpytensorflow

解决方案


推荐阅读