numpy 使用矩阵( Dataframe )和向量的和积计算

shstlldc  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(99)

我有一个矩阵 Dataframe 与行和列-标签
矩阵数据框(M),格式如下C1 C2 C3 C4........
R1 R2 R3 R4 ....
以及另一个向量(C),其值仅具有一行,但具有不同的标签顺序(如下)C4 C5 C7 C1 C3 C2 C9......
我需要做这两个和积乘法,并存储在一个结果矩阵的形式
R = M * C
乘法必须是在向量(C)中挑选相应的列标签,并与M中的右列相乘,并将其存储在新的 Dataframe R C1 C2 C3 C4中...... R1 R2 R3 ..
请告知是否有更快的方法和最佳方式在Python中执行此任务。我应该使用numpy还是pandas,哪种是执行此任务的最佳方式
数据来自评论:

# matrix M
{'C1': {'R1': 0.007262922, 'R2': 0.161176178, 'R3': 0.036416265, 'R4': 0.088695854},
 'C2': {'R1': 0.00771423, 'R2': 0.151682709, 'R3': 0.038982008, 'R4': 0.083075743},
 'C3': {'R1': 0.00464326, 'R2': 0.104005096, 'R3': 0.040155884, 'R4': 0.085256067},
 'C4': {'R1': 0.006368696, 'R2': 0.189279811, 'R3': 0.025380049, 'R4': 0.019488307},
 'C5': {'R1': 0.007190279, 'R2': 0.219102692, 'R3': 0.020208962, 'R4': 0.023091423},
 'C6': {'R1': 0.012902197, 'R2': 0.188676133, 'R3': 0.022958391, 'R4': 0.024071596}}

# vector C
{'C3': 1.1, 'C1': 3.2, 'C6': 2.4, 'C5': 4.0, 'C2': 3.0, 'C4': 9.0}

字符串

smtd7mpg

smtd7mpg1#

您可以在这里将pd.DataFrame.mulpd.DataFramepd.Series一起使用。这将通过匹配两个变量中的轴索引来相乘。

# d and s are dictionaries from question
M = pd.DataFrame(d)
C = pd.Series(s)

M.mul(C, axis=1)
#           C1        C2        C3        C4        C5        C6
# R1  0.023241  0.023143  0.005108  0.057318  0.028761  0.030965
# R2  0.515764  0.455048  0.114406  1.703518  0.876411  0.452823
# R3  0.116532  0.116946  0.044171  0.228420  0.080836  0.055100
# R4  0.283827  0.249227  0.093782  0.175395  0.092366  0.057772

字符串

相关问题