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