Python pandas和numpy的區別


https://m.py.cn/jishu/jichu/30289.html

 

數據結構上

 

1、numpy的核心數據結構是ndarray,支持任意維數的數組,但要求單個數組內所有數據是同質的,即類型必須相同;而pandas的核心數據結構是series和dataframe,僅支持一維和二維數據,但數據內部可以是異構數據,僅要求同列數據類型一致即可。

numpy的數據結構僅支持數字索引,而pandas數據結構則同時支持數字索引和標簽索引。

 

2、numpy用於數值計算,pandas主要用於數據處理與分析。

numpy雖然也支持字符串等其他數據類型,但仍然主要是用於數值計算,尤其是內部集成了大量矩陣計算模塊,例如基本的矩陣運算、線性代數、fft、生成隨機數等,支持靈活的廣播機制。

pandas主要用於數據處理與分析,支持包括數據讀寫、數值計算、數據處理、數據分析和數據可視化全套流程操作。

以上就是Python pandas和numpy的區別,希望對大家有所幫助。

 


 

https://blog.csdn.net/pfm685757/article/details/108699003

一、什么是Pandas?

Pandas被定義為一個開源庫, 可在Python中提供高性能的數據處理。它建立在NumPy軟件包的頂部, 這意味着操作Numpy需要Pandas。Pandas的名稱源自”面板數據”一詞, 這表示來自多維數據的計量經濟學。它用於Python中的數據分析, 由Wes McKinney在2008年開發。

在Pandas之前, Python能夠進行數據准備, 但是它僅提供了有限的數據分析支持。因此, Pandas嶄露頭角, 並增強了數據分析的功能。無論數據的來源如何, 它都可以執行處理和分析數據所需的五個重要步驟, 即加載, 操作, 准備, 建模和分析。

 

二、什么是NumPy?

NumPy主要用C語言編寫, 它是Python的擴展模塊。它被定義為Python軟件包, 用於執行多維和一維數組元素的各種數值計算和處理。使用Numpy數組的計算比普通的Python數組快。

NumPy包是由Travis Oliphant在2005年創建的, 方法是將祖先模塊Numeric的功能添加到另一個模塊Numarray中。它還能夠處理大量數據, 並通過矩陣乘法和數據重塑而方便。

 

Pandas和NumPy都可以被視為任何科學計算(包括機器學習)的必不可少的庫, 因為它們具有直觀的語法和高性能的矩陣計算功能。這兩個庫也最適合數據科學應用程序。

三、Pandas和NumPy之間的區別

下面列出了Pandas和NumPy之間的一些區別:

  • Pandas模塊主要處理表格數據, 而NumPy模塊處理數字數據。
  • Pandas提供了一些強大的工具集, 例如DataFrame和Series, 主要用於分析數據, 而NumPy模塊提供了一個強大的對象, 稱為Array。
  • Instacart, SendGrid和Sighten是使用Pandas模塊的一些著名公司, 而SweepSouth使用NumPy。
  • Pandas涵蓋了更廣泛的應用程序, 因為它在73個公司堆棧和46個開發人員堆棧中被提及, 而在NumPy中, 提到了62個公司堆棧和32個開發人員堆棧。
  • 對於50K或更少的行, NumPy的性能優於NumPy。
  • 對於50萬行或更多的行, Pandas的性能要優於NumPy。在50K到500K行之間, 性能取決於操作的類型。
  • NumPy庫提供用於多維數組的對象, 而Pandas能夠提供稱為DataFrame的內存中二維表對象。
  • 與Pandas相比, NumPy消耗更少的內存。
  • 與NumPy數組相比, Series對象的索引非常慢。

下表顯示了Pandas和NumPy之間的比較表:

比較基礎 Pandas NumPy
Works with Pandas模塊適用於表格數據。 NumPy模塊可用於數值數據。
Powerful Tools Pandas擁有強大的工具, 例如Series, DataFrame等。 NumPy具有像Arrays這樣的強大工具。
組織用途 Pandas用於Instacart, SendGrid和Sighten等受歡迎的組織。 NumPy用於像SweepSouth這樣的流行組織。
Performance Pandas對於50萬行或更多行具有更好的性能。 NumPy對於5萬行或更少的行具有更好的性能。
內存利用率 與NumPy相比, Pandas消耗大量內存。 與Pandas相比, NumPy消耗的內存更少。
Industrial Coverage 在73個公司堆棧和46個開發人員堆棧中提到了Pandas。 在62個公司堆棧和32個開發人員堆棧中都提到了NumPy。
Objects Pandas提供了稱為DataFrame的2d表對象。 NumPy提供了多維數組。

 


 

知乎:一只小猴   https://zhuanlan.zhihu.com/p/146754890

 

本文我們就來了解一下在數據處理時常用到的numpy和pandas到底是什么?該如何使用呢?

一、Numpy

numpy是以矩陣為基礎的數學計算模塊,提供高性能的矩陣運算,數組結構為ndarray

首先需要明確數組與列表的區別:數組是一種特殊變量,雖與列表相似,但列表可以存儲任意類型的數據,數組只能存儲一種類型的數據,同時,數組提供了許多方便統計計算的功能(如平均值mean、標准差std等)。

那么numpy有哪些功能呢?

首先在使用前要導入該模塊(導入前要安裝,方法自行搜索吧(*^-^*)),代碼如下:

import numpy as np

1. 通過原有列表轉化為數組

2. 直接生成數組

① 生成一維數組

上圖中由於生成一維數組時,沒有給參數10 定義數據類型,所以數組元素的類型默認為float64。那定義數據類型為整型時會是什么結果呢?

② 生成多維數組

zeros返回來一個給定形狀和類型的用0填充的數組,同理,ones返回來一個給定形狀和類型的用1填充的數組。但更多情況下我們想指定某個值,這時用np.full(shape, val)生成全為val的值,如下:

3. 隨機數取值

我們知道random庫中可以通過random.randint(5,10)來隨機生成一個5-10的數,如下:

在numpy中也有一個類似的加強版的功能。

4. 范圍取值

5. 訪問數組中的元素

6. 基本數學運算

numpy在做運算時,是對數組中每個元素都進行運算。

常用的運算符號及等價函數總結如下:

 

7. 數組變形

數組變形時,數組總大小保持不變,如上圖中我們定義了一個兩行五列的數組,總大小為2*5=10,經變形后得到一行十列的數組,總大小仍為10,但我們無法變成3*4或6*9等類型。

 

8. 數組拼接

 

9. 數組排序

 

二、Pandas

pandas是基於numpy數組構建的,但二者最大的不同是pandas是專門為處理表格和混雜數據設計的,比較契合統計分析中的表結構,而numpy更適合處理統一的數值數組數據。pandas數組結構有一維Series二維DataFrame

使用前同樣需要先導入該模塊,代碼如下:

import pandas as pd

1. Series

Series是一種類似於一維數組的對象,它由一組數據以及一組與之相關的數據標簽(索引index)組成。

Series的字符串表現形式為:索引在左邊,值在右邊。如果不為數據指定索引,則會默認創建一個0到n-1的整數型索引。

①  通過原有字典轉化為數組

②  訪問元素

與numpy相比,除了根據位置獲取值外,還可以根據索引獲取。

③  向量化運算

上圖運行結果可以看到出現了缺失值NaN(not a number),這是因為索引值b、c、d、e、f、g只出現在一個一維數組中。在數據分析過程中,我們通常不希望缺失值出現,那么如何解決呢?

一般常用的有兩種方法:

2. DataFrame

DataFrame是一個表格型的數據結構,其中的數據是以一個或多個二維塊存放的,而不是列表、字典或別的一維數據結構。它含有一組有序的列,每列可以是不同的數據類型,它既有行索引,也有列索引。

① 將原有字典轉化為DataFrame

② 訪問元素

③ 條件篩選

④ 排序

⑤ 應用函數

其他常用函數舉例如下:

# 取前五行 table.head() # 取后五行 table.tail() # 查看行列數 table.shape() # 查看每一列的統計信息 table.describe() ......

以上就是numpy與pandas的基礎內容,如有遺漏或錯誤,歡迎評論區指正~~

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM