3
這可能是一個愚蠢的問題,但我想乘以2個數據框,一個是100x2形狀(100行和2列),另一個是2x1形狀。所述第一數據幀的(僅打印頭,並具有100行和2列,即X0和X1): -乘法使用Python熊貓數據框
X0 X1
0 1 6.1101
1 1 5.5277
2 1 8.5186
3 1 7.0032
4 1 5.8598
其它數據幀是一個參數矢量&我稱之爲西塔2列0,和1.
Theta=pd.DataFrame(np.zeros((1, 2)))
print("printing initialized Theta:\n",Theta)
輸出是=
0 1
0 0.0 0.0
,你可以看到它是尺寸1×2的。現在,我藉此西塔數據幀的轉置,並且變得:
theta1=theta.transpose()
print("printing theta transponse:\n",theta1)
結果是: -
0
0 0.0
1 0.0
然而,當我使用乘以該第一數據幀X具有Theta1:
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)
正如你所看到的,它現在已經變成了一個100x3的數據框,當我預計它是一個100x1。 看起來像數據幀畢竟不能基於矩陣乘法相乘。我該怎麼做纔對?我應該將其轉換爲numpy.matrix,然後進行矩陣乘法?
.dor對齊ü不需要.values(其實你很少需要它);這不是慣用的 – Jeff
和你的最後一部分是慣用的方式(或更好地構造Theta那樣);使用.values根本就不是慣用的,應該幾乎不會被使用 – Jeff
@Jeff明白了。我會相應地調整答案。 – piRSquared