数组与另一个数组的标量乘法(numpy)

数组与另一个数组的标量乘法(numpy),numpy,vectorization,Numpy,Vectorization,我有一个大小为(4,1)的数组,如: 以及第二个大小为(1,2)的数组,如: 我尝试将第一个数组的每个第一项乘以第二个数组的每个第一项,并将第一个数组的每个第二项乘以第二个数组的第二项,结果如下: ar_result = np.array([[2,3], [4,6], [6,9], [8,12]]) 有没有一种简单且矢量化的方法可以做到这一点 当我尝试ar1*ar2it

我有一个大小为(4,1)的数组,如:

以及第二个大小为(1,2)的数组,如:

我尝试将第一个数组的每个第一项乘以第二个数组的每个第一项,并将第一个数组的每个第二项乘以第二个数组的第二项,结果如下:

ar_result = np.array([[2,3],
                     [4,6],
                     [6,9],
                     [8,12]])
有没有一种简单且矢量化的方法可以做到这一点

当我尝试
ar1*ar2
it时,我得到以下错误:

ValueError:操作数无法与形状(4,)(2,)一起广播。

谢谢


编辑:为了澄清,在我的例子中,ar1是数据帧df1列或行,而ar2是另一个数据帧df2中的单元格内容(
df2.loc[x,y]=[2,3]

您尝试过
ar1*ar2

ar_result = ar1 * ar2
#array([[ 2,  3],
#       [ 4,  6],
#       [ 6,  9],
#       [ 8, 12]])

是的,但是我得到了这个值错误:
ValueError:操作数不能与形状(4,)(2,)
一起广播。我添加了一个编辑来澄清问题,可能是对象类型不完全是
np.array
?错误告诉您实际形状是什么,而不是您所想的。打印
ar1
。我怀疑它是1d对象数据类型。元素可以是数组,也可以是列表或字符串。对于熊猫,这很难说。如图所示,你有一个(4,2)和(2,)可以根据需要进行繁殖。
ar_result = np.array([[2,3],
                     [4,6],
                     [6,9],
                     [8,12]])
ar_result = ar1 * ar2
#array([[ 2,  3],
#       [ 4,  6],
#       [ 6,  9],
#       [ 8, 12]])