我想把数组中的所有元素相乘,得到一个df,第一列是a1a1,a1a2,a1a3...,第二列是a2a1,a2*a2等。我想要一个矢量化的解决方案到目前为止,我所拥有的是半矢量化的,我不知道如何摆脱这里的循环,并将感谢任何提示!
data = {'values': [0.7, 0.1, 0.5, 0.7]}
df = pd.DataFrame.from_dict(data)
products = []
for i in df.index:
products.append([np.multiply(item,df.loc[i, 'values']) for item in df['values']])
products = pd.DataFrame(products)
2条答案
按热度按时间vlf7wbxs1#
使用numpybroadcasting:
numpy.outer
:输出:
1wnzp6jl2#
使用
numpy broadcasting
: