Python 将二维数组中的每个值乘以另一个二维数组中的相应值

Python 将二维数组中的每个值乘以另一个二维数组中的相应值,python,arrays,numpy,multidimensional-array,multiplication,Python,Arrays,Numpy,Multidimensional Array,Multiplication,正如标题所示,我正在尝试将2d数组中的每个值乘以另一个2d数组中的相应值。我可以做到这一点,并为此编写了以下代码。但是,我的问题是,每个2d数组包含1000个数组,其中包含15289个数字,这需要花费太长的时间。我必须这样做三次,因为我有三个这样的2d阵列。目前,执行所有这些操作需要一分钟(运行以下代码大约需要20秒)。这太长了,因为我有100组数据要在整个脚本中运行,每个脚本包含3批这样的2d数组。如果我能把这个时间缩短20秒,那么从长远来看,我会节省很多时间,因为其他一切都会顺利进行 e_d

正如标题所示,我正在尝试将2d数组中的每个值乘以另一个2d数组中的相应值。我可以做到这一点,并为此编写了以下代码。但是,我的问题是,每个2d数组包含1000个数组,其中包含15289个数字,这需要花费太长的时间。我必须这样做三次,因为我有三个这样的2d阵列。目前,执行所有这些操作需要一分钟(运行以下代码大约需要20秒)。这太长了,因为我有100组数据要在整个脚本中运行,每个脚本包含3批这样的2d数组。如果我能把这个时间缩短20秒,那么从长远来看,我会节省很多时间,因为其他一切都会顺利进行

e_data = [[i*j for i,j in y] for y in np.dstack((e_data,sens_function))]    

e_数据
是我的射电通量值(对于任何射电天文学家而言),而
sens_函数
是乘法中的另一个数组(这将使我的
e_数据
达到我需要的单位)。任何帮助或建议都将不胜感激

我认为使用嵌套的
for
循环和
dstack
过于复杂了。您只需使用
*
(乘法)运算符即可。对于2d数组,它将执行元素相乘。请参见以下示例:

e_data = np.arange(9).reshape(3,3)
print (arr1)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]

sens_function = np.arange(9).reshape(3,3)
print (arr2)
# [[0 1 2]
#  [3 4 5]
# [6 7 8]]

result = e_data*sens_function
print (result)

# [[ 0  1  4]
# [ 9 16 25]
# [36 49 64]]
你正在表演:

e_data=np.multiply(e_data,sens_函数)

为什么要投否决票?是怨恨还是反馈?我相信用
*
将两个数组相乘是最简单的答案。