【Pandas】pandas DataFrame to_numpy

Pandas2.2 DataFrame

Conversion

方法描述
DataFrame.astype(dtype[, copy, errors])用于將 DataFrame 中的數據轉換為指定的數據類型
DataFrame.convert_dtypes([infer_objects, …])用于將 DataFrame 中的數據類型轉換為更合適的類型
DataFrame.infer_objects([copy])用于嘗試將 DataFrame 中的 object 類型的列轉換為更具體的類型(如 int64float64boolean
DataFrame.copy([deep])用于創建 DataFrame 的副本
DataFrame.bool()用于將 DataFrame 轉換為布爾值
DataFrame.to_numpy([dtype, copy, na_value])用于將 DataFrame 轉換為 NumPy 數組

pandas.DataFrame.to_numpy

pandas.DataFrame.to_numpy 是一個方法,用于將 DataFrame 轉換為 NumPy 數組。這個方法非常有用,特別是在需要將 DataFrame 中的數據傳遞給其他庫(如 NumPy、SciPy 或 scikit-learn)進行進一步處理時。

方法簽名
DataFrame.to_numpy(dtype=None, copy=True, na_value=None)
參數說明
  • dtype: 字符串或數據類型,默認為 None,表示返回的 NumPy 數組的數據類型。如果為 None,則使用 DataFrame 中數據的默認類型。
  • copy: 布爾值,默認為 True,表示是否返回 DataFrame 數據的副本。如果設置為 False,則返回的數據數組與 DataFrame 共享內存。
  • na_value: 標量值,默認為 None,表示如何表示 DataFrame 中的缺失值(NaN)。如果為 None,則使用 NumPy 的默認行為(即 np.nan)。
返回值
  • 返回一個 NumPy 數組,包含 DataFrame 中的數據。
示例

假設有一個 DataFrame 如下:

import pandas as pd
import numpy as npdata = {'A': [1, 2, 3],'B': [1.1, 2.2, 3.3],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)

輸出:

原始 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    float64
C     object
dtype: object
示例1:將 DataFrame 轉換為 NumPy 數組(默認參數)
array_default = df.to_numpy()
print("轉換后的 NumPy 數組 (默認參數):")
print(array_default)
print("\n數據類型:")
print(array_default.dtype)

結果:

轉換后的 NumPy 數組 (默認參數):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object
示例2:不復制數據
array_no_copy = df.to_numpy(copy=False)
print("轉換后的 NumPy 數組 (不復制數據):")
print(array_no_copy)
print("\n數據類型:")
print(array_no_copy.dtype)

結果:

轉換后的 NumPy 數組 (不復制數據):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object
示例3:指定缺失值表示為 -1
df_with_na = pd.DataFrame({'A': [1, 2, np.nan],'B': [1.1, np.nan, 3.3],'C': ['x', 'y', np.nan]
})array_with_na = df_with_na.to_numpy(na_value=-1)
print("轉換后的 NumPy 數組 (指定缺失值為 -1):")
print(array_with_na)
print("\n數據類型:")
print(array_with_na.dtype)

結果:

轉換后的 NumPy 數組 (指定缺失值為 -1):
[[ 1.   1.1 -1. ][ 2.  -1.   1. ][ -1.   3.3 -1. ]]數據類型:
float64

通過這些示例,可以看到 pandas.DataFrame.to_numpy 方法如何將 DataFrame 轉換為 NumPy 數組,并且如何使用不同的參數來控制轉換的行為。

注意事項
  • to_numpy 方法可以將 DataFrame 轉換為 NumPy 數組。
  • 可以通過 dtype 參數指定返回的 NumPy 數組的數據類型。
  • 設置 copy=True 返回 DataFrame 數據的副本,而不會共享內存。
  • 設置 copy=False 返回的數據數組與 DataFrame 共享內存。
  • 可以通過 na_value 參數指定如何表示 DataFrame 中的缺失值(NaN)。
示例代碼及驗證

為了驗證 pandas.DataFrame.to_numpy 方法的效果,可以運行上述示例代碼并查看輸出結果。

import pandas as pd
import numpy as np# 創建一個示例 DataFrame
data = {'A': [1, 2, 3],'B': [1.1, 2.2, 3.3],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)# 將 DataFrame 轉換為 NumPy 數組(默認參數)
array_default = df.to_numpy()
print("\n轉換后的 NumPy 數組 (默認參數):")
print(array_default)
print("\n數據類型:")
print(array_default.dtype)# 不復制數據
array_no_copy = df.to_numpy(copy=False)
print("\n轉換后的 NumPy 數組 (不復制數據):")
print(array_no_copy)
print("\n數據類型:")
print(array_no_copy.dtype)# 創建一個包含缺失值的 DataFrame
df_with_na = pd.DataFrame({'A': [1, 2, np.nan],'B': [1.1, np.nan, 3.3],'C': ['x', 'y', np.nan]
})# 指定缺失值表示為 -1
array_with_na = df_with_na.to_numpy(na_value=-1)
print("\n轉換后的 NumPy 數組 (指定缺失值為 -1):")
print(array_with_na)
print("\n數據類型:")
print(array_with_na.dtype)
運行結果

運行上述代碼后,你會看到以下輸出:

原始 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    float64
C     object
dtype: object轉換后的 NumPy 數組 (默認參數):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object轉換后的 NumPy 數組 (不復制數據):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object轉換后的 NumPy 數組 (指定缺失值為 -1):
[[ 1.   1.1 -1. ][ 2.  -1.   1. ][ -1.   3.3 -1. ]]數據類型:
float64

通過這些示例,可以看到 pandas.DataFrame.to_numpy 方法如何將 DataFrame 轉換為 NumPy 數組,并且如何使用不同的參數來控制轉換的行為。

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

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

相關文章

2025常用的ETL 產品推薦:助力企業激活數據價值

在當今數字化時代,企業面臨著海量數據的挑戰與機遇,ETL(Extract, Transform, Load)工具作為數據整合與分析的關鍵環節,其重要性日益凸顯。ETL 廠商眾多,各有優勢,本文將從多個維度進行分析&…

LeetCode算法題(Go語言實現)_37

題目 給你一棵以 root 為根的二叉樹,二叉樹中的交錯路徑定義如下: 選擇二叉樹中 任意 節點和一個方向(左或者右)。 如果前進方向為右,那么移動到當前節點的的右子節點,否則移動到它的左子節點。 改變前進方…

博途 TIA Portal之1200做從站與匯川EASY的TCP通訊

上篇我們寫到了博途做主站與匯川EASY的通訊。通訊操作起來很簡單,當然所謂的簡單,也是相對的,如果操作成功一次,那么后面就很容易了, 如果操作不成功,就會很遭心。本篇我們將1200做從站,與匯川EASY做主站進行TCP的通訊。 1、硬件準備 1200PLC一臺,帶調試助手的PC機一…

Mysql(繼續更新)

INnoDB 三特性 事務 外鍵 行級鎖(開啟事務時,查詢后加FOR UPDATE) MySQL 使用 InnoDB,在 默認隔離級別 —— REPEATABLE READ(可重復讀) 下 開啟事務,執行 UPDATE 時默認會加行鎖 只要事務沒有提交 這條數據會鎖住 …

[IOI 1994] 數字三角形 Number Triangles

題目鏈接 思路(上到下): ①從上往下遞推: f[i][j] max(f[i-1][j] g[i][j], f[i-1][j-1]g[i][j]) ②對最后一層,遍歷一下,找到最大的答案。 代碼(上到下): #inclu…

基于Qt的串口通信工具

程序介紹 該程序是一個基于Qt的串口通信工具,專用于ESP8266 WiFi模塊的AT指令配置與調試。主要功能包括: 1. 核心功能 串口通信:支持串口開關、參數配置(波特率、數據位、停止位、校驗位)及數據收發。 AT指令操作&a…

第5篇:Linux程序訪問控制FPGA端LEDR<三>

Q:如何具體設計.c程序代碼訪問控制FPGA端外設? A:以控制DE1-SoC開發板的LEDR為例的Linux .C程序代碼。頭文件fcntl.h和sys/mman.h用于使用/dev/mem文件,以及mmap和munmap內核函數;address_map_arm.h指定了DE1-SoC_Com…

【學生管理系統升級版】

學生管理系統升級版 需求分析:注冊功能:登錄功能:驗證碼規則:忘記密碼: 實操:系統主頁面注冊功能登錄功能忘記密碼效果演示 需求 為學生管理系統書寫一個登陸、注冊、忘記密碼的功能。 ? ? 只有用戶登錄成功之后&…

CSS Grid布局:從入門到放棄再到真香

Flexbox 與 Grid 布局:基礎概念與特點 Flexbox Flexbox(Flexible Box Layout),即彈性盒布局模型,主要用于創建一維布局,能夠輕松實現元素在一行或一列中的排列、對齊與分布。通過display: flex屬性啟用 Fl…

C++怎么調用類中的函數

1. 棧上對象 調用普通成員方法 普通成員方法需要通過類的對象實例&#xff08;或指針、引用&#xff09;來調用。 示例&#xff1a; class MyClass { public:void normalMethod() {std::cout << "普通成員方法被調用" << std::endl;} };int main() {M…

go游戲后端開發31:麻將游戲的碰牌與胡牌邏輯

以下是潤色后的版本&#xff1a; 1. 碰牌邏輯 1.1 觸發碰牌 當一個玩家棄牌后&#xff0c;其他玩家可以選擇碰牌。如果當前玩家決定碰牌&#xff0c;系統需要通知所有玩家這一操作。碰牌操作完成后&#xff0c;當前玩家需要出一張牌&#xff0c;系統同樣需要通知所有玩家。 …

十分鐘機器學習之--------------線性回歸

線性回歸&#xff08;linear regression&#xff09;是一種基于數學模型的算法&#xff0c;首先假設數據集與標簽之間存在線性關系&#xff0c;然后簡歷線性模型求解參數。在實際生活中&#xff0c;線性回歸算法因為其簡單容易計算&#xff0c;在統計學經濟學等領域都有廣泛的應…

學透Spring Boot — 017. 處理靜態文件

這是我的《學透Spring Boot》專欄的第17篇文章&#xff0c;了解更多內容請移步我的專欄&#xff1a; Postnull CSDN 學透 Spring Boot 目錄 靜態文件 靜態文件的默認位置 通過配置文件配置路徑 通過代碼配置路徑 靜態文件的自動配置 總結 靜態文件 以前的傳統MVC的項目…

深入理解 JavaScript 數組查找:如何高效獲取特定元素

深入理解 JavaScript 數組查找&#xff1a;如何高效獲取特定元素 深入理解 JavaScript 數組查找&#xff1a;如何高效獲取特定元素引言問題場景解決方案1. 使用 Array.prototype.find()2. 處理 Proxy 對象的情況3. 備選方案&#xff1a;Array.prototype.filter()4. 傳統 for 循…

HTML5+CSS3小實例:純CSS繪制七巧板

實例:純CSS繪制七巧板 技術棧:HTML+CSS 效果: 源碼: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale…

[electron]自動注冊IPC的解決方案

前言 主進程和渲染進程通過IPC進行通信&#xff0c;每次需要定義名稱并注冊&#xff0c;很多代碼都是重復書寫&#xff0c;并且如果主進程和渲染進程開發人員是同一個的話&#xff0c;很多東西都可以簡化。 渲染進程通過ipcRenderer.invoke與主進程通信&#xff0c;主進程通過i…

JS—防抖和節流:1分鐘掌握防抖和節流

個人博客&#xff1a;haichenyi.com。感謝關注 一. 目錄 一–目錄二–防抖三–節流四–進階應用五–總結 二. 防抖&#xff08;Debounce&#xff09; 防抖&#xff08;Debebounce&#xff09;和節流&#xff08;Throttle&#xff09;都是前端開發中用于優化高頻事件性能的兩…

測試模板1

本篇技術博文摘要 &#x1f31f; 引言 &#x1f4d8; 在這個變幻莫測、快速發展的技術時代&#xff0c;與時俱進是每個IT工程師的必修課。我是盛透側視攻城獅&#xff0c;一名什么都會一丟丟的網絡安全工程師&#xff0c;也是眾多技術社區的活躍成員以及多家大廠官方認可人員&a…

Nginx配置Http響應頭安全策略,未設置X-Content-Type-Options響應頭【原理掃描】

文章目錄 前言一、漏洞掃描問題二、漏洞描述三、解決方法3.1、Nginx配置概覽3.2、注意事項 四、感謝 前言 第三方安全檢測機構甩過來一篇漏洞掃描報告&#xff0c;需要我們整改。 一、漏洞掃描問題 漏洞掃描問題如下&#xff1a; 未設置X-Content-Type-Options響應頭【原理掃…

Gerapy二次開發:用戶管理專欄新增與編輯頁面開發

用戶管理專欄新增與編輯頁面開發 寫在前面Vue表單設計與開發Vue的this.$refs功能實現前端Create.vueEdit.vueSubstance.vue效果預覽后端urls.pyviews.py整體效果預覽新增編輯總結歡迎加入Gerapy二次開發教程專欄! 本專欄專為新手開發者精心策劃了一系列內容,旨在引領你深入探…