【Pandas】pandas DataFrame dot

Pandas2.2 DataFrame

Binary operator functions

方法描述
DataFrame.add(other)用于執行 DataFrame 與另一個對象(如 DataFrame、Series 或標量)的逐元素加法操作
DataFrame.add(other[, axis, level, fill_value])用于執行 DataFrame 與另一個對象(如 DataFrame、Series 或標量)的逐元素加法操作
DataFrame.sub(other[, axis, level, fill_value])用于執行逐元素的減法操作
DataFrame.mul(other[, axis, level, fill_value])用于執行逐元素的乘法操作
DataFrame.div(other[, axis, level, fill_value])用于執行逐元素的除法操作
DataFrame.truediv(other[, axis, level, …])用于執行逐元素的真除法操作
DataFrame.floordiv(other[, axis, level, …])用于執行逐元素的地板除法操作
DataFrame.mod(other[, axis, level, fill_value])用于執行逐元素的取模操作
DataFrame.pow(other[, axis, level, fill_value])用于對 DataFrame 中的元素進行冪運算
DataFrame.dot(other)用于計算兩個 DataFrame(或 DataFrame 與 Series/數組)之間的**矩陣點積(矩陣乘法)**的方法

pandas.DataFrame.dot()

pandas.DataFrame.dot(other) 是 Pandas 中用于計算兩個 DataFrame(或 DataFrame 與 Series/數組)之間的**矩陣點積(矩陣乘法)**的方法。它的行為類似于線性代數中的矩陣乘法,結果的行索引與原始 DataFrame 的行索引對齊,列索引與 other 的列索引對齊。


語法
DataFrame.dot(other)
  • 參數 other:可以是另一個 DataFrame、Series 或類數組結構(如 NumPy 數組)。
  • 返回值:一個新的 DataFrame 或 Series,具體取決于輸入類型。

關鍵規則
  1. 維度對齊:調用方的列數必須與 other 的行數相等。
  2. 索引對齊:Pandas 會根據行/列標簽自動對齊數據。若標簽不匹配,可能導致 NaN 或錯誤。
  3. * 的區別df.dot(other) 是矩陣乘法,而 df * other 是逐元素相乘。

示例
示例 1:DataFrame × DataFrame
import pandas as pd# 創建兩個 DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['row1', 'row2'])
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}, index=['A', 'B'])# 矩陣乘法:df1 的列索引(A, B)與 df2 的行索引(A, B)對齊
result = df1.dot(df2)
print(result)

輸出

       C   D
row1  23  31
row2  34  46

計算過程

  • row1 的結果:
    • C = 1*5 + 3*6 = 5 + 18 = 23
    • D = 1*7 + 3*8 = 7 + 24 = 31
  • row2 的結果:
    • C = 2*5 + 4*6 = 10 + 24 = 34
    • D = 2*7 + 4*8 = 14 + 32 = 46

示例 2:DataFrame × Series
import pandas as pddf = pd.DataFrame({'X': [1, 2, 3], 'Y': [4, 5, 6]}, index=['a', 'b', 'c'])
s = pd.Series([10, 20], index=['X', 'Y'])  # Series 的索引與 df 的列對齊result = df.dot(s)
print(result)

輸出

a     90   # 1*10 + 4*20 = 10 + 80 = 90
b    120   # 2*10 + 5*20 = 20 + 100 = 120
c    150   # 3*10 + 6*20 = 30 + 120 = 150
dtype: int64

示例 3:DataFrame × 數組
import pandas as pd
import numpy as npdf = pd.DataFrame({'M': [1, 2], 'N': [3, 4]})
arr = np.array([[5, 6], [7, 8]])  # 2x2 數組result = df.dot(arr)
print(result)

輸出

    0   1
0  26  30
1  38  44

計算過程

  • 第 0 行:1*5 + 3*7 = 5 + 21 = 26(列 0),1*6 + 3*8 = 6 + 24 = 30(列 1)
  • 第 1 行:2*5 + 4*7 = 10 + 28 = 38(列 0),2*6 + 4*8 = 12 + 32 = 44(列 1)

注意事項
  1. 維度不匹配:若列數 ≠ other 的行數,拋出 ValueError
  2. 索引對齊問題:若標簽不匹配,可能生成 NaN。可用 .values 忽略索引:
    df1.dot(df2.values)  # 使用純數值計算,忽略索引
    
  3. @ 運算符等價df1 @ df2df1.dot(df2) 結果相同。

通過 dot() 方法,可以高效實現線性代數中的矩陣乘法操作,適用于數據分析、機器學習等場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78175.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows上Tomcat 11手動啟動startup.bat關閉shutdown.bat

發現tomcat11無法手動雙擊startup.bat和shutdown.bat進行開啟和關閉。雙擊startup.bat命令窗口一閃而過就是啟動失敗了,正常啟動成功是cmd命令窗口有全副的執行輸出且不關閉窗口。 解決方法如下:主要更改一個tomcat安裝目錄下的/conf/server.xml配置 1.…

7.9 Python+Click實戰:5步打造高效的GitHub監控CLI工具

Python+Click實戰:5步打造高效的GitHub監控CLI工具 GitHub Sentinel Agent 命令行界面開發實戰 關鍵詞:CLI 開發實踐、Click 框架、API 集成、命令行參數解析、錯誤處理機制 1. 命令行界面技術選型與架構設計 GitHub Sentinel 采用 Click + Requests 技術棧構建 CLI 工具,…

安全框架概述

Java中的安全框架通常是指解決Web應用安全問題的框架,如果開發Web應用時沒有使用安全框架,開發者需要自行編寫代碼增加Web應用安全性。自行實現Web應用的安全性并不容易,需要考慮不同的認證和授權機制、網絡關鍵數據傳輸加密等多方面的問題&a…

配置 C/C++ 語言智能感知(IntelliSense)的 c_cpp_properties.json 文件內容

配置 C/C 語言智能感知(IntelliSense)的 c_cpp_properties.json 文件內容 {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/opt/ros/humble/include/**&quo…

【安全掃描器原理】網絡掃描算法

【安全掃描器原理】網絡掃描算法 1.非順序掃描2.高速掃描 & 分布式掃描3.服務掃描 & 指紋掃描 1.非順序掃描 參考已有的掃描器,會發現幾乎所有的掃描器都無一例外地使用增序掃描,即對所掃描的端口自小到大依次掃描,殊不知&#xff0…

理解歐拉公式

1. 歐拉公式中的符號 歐拉公式 e i x cos ? x i sin ? x e^{ix}\cos xi\sin x eixcosxisinx當 x π x \pi xπ時 e i π 1 0 / / 歐拉恒等式 e^{i\:\pi}10 //歐拉恒等式 eiπ10//歐拉恒等式 e e e:自然對數的底 i i i:虛數, i 2 ? 1 i^2 -1 i2?1 cos…

HTML郵件背景圖兼容 Outlook

在 HTML 郵件中設置背景圖片時,Outlook(尤其是桌面版的 Outlook for Windows)經常不會正確顯示背景圖,這是因為outlook 是使用 Word 作為郵件渲染引擎,而不是標準的 HTML/CSS 渲染方式。 推薦的解決方案:使…

杰理ac792開發板按鍵不起效果

按鍵想要起效果需要把UI給注釋掉,排查了半天

Kubernetes 常用運維命令整理

目錄 Kubernetes 常用運維命令整理一、集群管理二、Pod 和容器管理三、Deployment 和應用管理四、Service 和網絡管理五、存儲管理六、ConfigMap 和 Secret 管理七、資源使用與監控八、調度和容錯九、Role 和權限管理十、清理資源 總結 Kubernetes 常用運維命令整理 Kubernete…

在 Debian 12 中恢復被刪除的 smb.conf 配置文件

https://forum.ubuntu.com.cn/viewtopic.php?t494763 本文結合ai輸出,內容中有些錯誤,但確實解決了我的問題,我采取保留完整輸出的方式摘錄。 在 Debian 12 中恢復被刪除的 smb.conf 配置文件,需結合 dpkg 和 ucf(Upd…

GB2312/GBK是字符集嗎

GB2312/GBK 是字符集嗎? 是的,GB2312 和 GBBK 既是字符集(Character Set),也是編碼方式(Encoding)。它們不僅定義了可表示的字符范圍,還規定了這些字符在計算機中的二進制存儲格式。…

BOM與DOM(解疑document window關系)

BOM(瀏覽器對象模型) 定義與作用 BOM(Browser Object Model)提供與瀏覽器窗口交互的接口,用于控制導航、窗口尺寸、歷史記錄等瀏覽器行為 window:瀏覽器窗口的頂層對象,包含全局屬性和方法&am…

水域陸地兩相宜,便攜漏電探測儀

在自然災害如洪水、地震、臺風及火災中,建筑物和電力設施易因結構破壞、線路老化或設備浸水導致絕緣失效,引發漏電事故。漏電不僅直接威脅人員生命安全,還可能引發二次火災或爆炸,尤其在潮濕環境下導電性增強,觸電風險…

c加加學習之day06->STL標準庫->day01

1.介紹:C 標準模板庫(Standard Template Library,簡稱 STL)是一組泛型編程的模板類和函數,旨在提供常用的數據結構、算法和函數對象。STL 是 C 標準庫的一部分,極大地提高了編程效率和代碼的可重用性。STL …

onnx注冊cpu版flashattention

摘要 本教程展示了如何在 ONNX Runtime 中注冊一個 CPU 可執行的 FlashAttention 算子。首先,可以直接升級到 ONNX Runtime v1.16 及以上,以獲得內置的 FlashAttention CPU 實現citeturn0search2;其次,演示了如何通過 ONNX Runtime 的 Custom Op 接口自定義實現并注…

3D高斯個人筆記

入門blog,參考視頻1和參考視頻2 球諧函數 通俗介紹或通俗介紹,3D高斯就是利用球諧函數(SH函數)作為基函數,去求取三維空間中不同點的顏色。 SH函數作為基函數通常是表示不同角度下的距離,即三維球面點半徑&#xff…

電子處方模塊開發避坑指南:從互聯網醫院系統源碼實踐出發

今天,筆者將結合互聯網醫院系統源碼實踐,從技術架構、合規策略、業務流程到性能優化,為大家梳理一份電子處方模塊開發避坑指南,助力各類醫療平臺高效落地電子處方功能。 一、為何電子處方模塊是互聯網醫院的“重災區”&#xff1…

【RabbitMQ | 第2篇】RabbitMQ 控制臺實現消息路由 + 數據隔離

文章目錄 同步調用和異步調用MQRabbitMQ1. RabbitMQ控制臺實現交換機路由到隊列1.1 創建隊列1.2 將消息發送給交換機,是否會到達隊列 2. RabbitMQ控制臺實現數據隔離2.1 添加一個用戶2.2 創建新的虛擬主機 同步調用和異步調用 同步調用是指完成一個功能&#xff0c…

kubernetes》》k8s》》Heml

Heml 下載地址 安裝 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash# helm 添加 倉庫 # helm repo add 倉庫名稱 倉庫地址 helm repo add stable http://mirror.azure.cn/kubernetes/charts/# 查看helm 倉庫列表 helm repo list # 結…

【專題刷題】二分查找(一):深度解刨二分思想和二分模板

📝前言說明: 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄,按專題劃分每題主要記錄:(1)本人解法 本人屎山代碼;(2)優質解法 優質代碼;&#xff…