2
成對點的產品有一個數據幀我我怎麼總結列
df = pd.DataFrame(np.random.rand(10, 10))
我想借此奇數列的成對點產品與偶數行再總結起來。所以列0與列1,列2與列3,依此類推。
我做
df.mul(df.shift(axis=1)).sum().sum()
但是,這讓我列1和2,2和3,3和4,這是不是我想要的。
成對點的產品有一個數據幀我我怎麼總結列
df = pd.DataFrame(np.random.rand(10, 10))
我想借此奇數列的成對點產品與偶數行再總結起來。所以列0與列1,列2與列3,依此類推。
我做
df.mul(df.shift(axis=1)).sum().sum()
但是,這讓我列1和2,2和3,3和4,這是不是我想要的。
嘗試:
(df.iloc[:, ::2].values * df.iloc[:, 1::2].values).sum()
,元素方式乘法與和減少可能被認爲是積減少。在這種情況下,我們可以使用NumPy's tensordot
,就像這樣 -
# Extract the elements as a NumPy array
arr = df.get_values()
# Perform dot product between odd and even columns to get the desired output
out = np.tensordot(arr[:,::2],arr[:,1::2])