3
愚かな質問かもしれませんが、私は2つのデータフレームを乗算しようとしています.1つは100x2の形(100行と2列)で、もう1つは2x1の形です。最初のデータフレーム(頭部のみを印刷し、100行2列、すなわちX0およびX1を有する)である: -Python Pandasデータフレームを使った乗算
X0 X1
0 1 6.1101
1 1 5.5277
2 1 8.5186
3 1 7.0032
4 1 5.8598
他のデータフレームはパラメータベクトル&でIは2列0とシータを呼び出し、そして1.
Theta=pd.DataFrame(np.zeros((1, 2)))
print("printing initialized Theta:\n",Theta)
出力あなたはそれがサイズ1×2である見ることができるように=
0 1
0 0.0 0.0
です。今、私はこのシータデータフレームの転置を取ると、それは次のようになります。
theta1=theta.transpose()
print("printing theta transponse:\n",theta1)
結果は次のとおりです。 -
0
0 0.0
1 0.0
しかし、私が使用してTheta1と、この最初のデータフレームXを掛けたとき:
predict=X.mul(theta1,axis=1)
を
出力は(ヘッドのみを印刷しています)
X0 X1 0
0 0.0 0.0 0.0
1 0.0 0.0 0.0
2 0.0 0.0 0.0
3 0.0 0.0 0.0
4 0.0 0.0 0.0
(100, 3)
あなたが100x1であると予想していたとき、今は100x3のデータフレームになっています。 データフレームのように見えますが、行列乗算に基づいてすべてを乗算することはできません。それをどうやって得るのですか?私はそれをnumpy.matrixに変換し、次に行列乗算を行うべきですか?
.dor uは(実際にはあなたはめったにそれを必要としない).valuesを必要としません揃えてみてください。それは慣用的ではありません – Jeff
あなたの最後の部分は慣用的な方法です.valuesを使用することは、単に慣用的ではなく、ほとんど使用するべきではありません。 – Jeff
@Jeff入手しました。私はそれに応じて答えを調整します。 – piRSquared