Python 模塊之 NumPy:高效操作多維數組

一、NumPy介紹

NumPy是一個基於Python語言的開源科學計算庫,重點是支持數組計算。NumPy包含許多工具和函數,可以輕鬆地構建數組並使用它們來進行高效的數值計算。它是Python進行科學計算、數據分析和數據可視化的基礎之一。與純Python的列表相比,NumPy數組能夠存儲和處理更多的數據,是Python進行數據分析和處理時候的首選工具。

二、創建NumPy數組

使用NumPy創建數組可以方便而且非常靈活,可以按照特定的類型來創建、修改、處理和操作數組。使用NumPy創建數組有三種主要的方法:

1、將Python列錶轉換為NumPy數組。

import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr)

2、使用NumPy內置的函數創建特定類型的數組。

import numpy as np
# 創建5行3列的全為0的數組
arr1 = np.zeros((5, 3))
# 創建5行3列的全為1的數組
arr2 = np.ones((5, 3))
# 創建5行3列的隨機浮點數數組
arr3 = np.random.rand(5, 3)
print(arr1)
print(arr2)
print(arr3)

3、使用NumPy的arange()方法創建數字序列。使用reshape()方法可以將一維數組變成任何形狀的數組。

import numpy as np
# 創建0到9的數字序列
arr1 = np.arange(10)
# 創建0到9,並將其變成5行2列的二維數組。
arr2 = np.arange(10).reshape(5, 2)
print(arr1)
print(arr2)

三、NumPy數組的基本操作

可以使用NumPy數組的基本操作進行數據的處理和運算,包括索引、切片、數組運算、聚合和重構。使用NumPy數組進行基本操作能夠提高代碼的效率和簡化操作的複雜程度。

1、索引和切片

與Python列表類似,可以使用整數索引和切片來訪問和處理數組的元素。NumPy的數組從0開始計數,數字必須小於數組的長度。

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) #輸出1
print(arr[0:3]) #輸出[1, 2, 3]

2、數組運算

使用NumPy的數組運算可以進行各種數學運算。所有算術運算符都可以在數組上操作,比如加、減、乘、除,以及對數、指數、三角函數、矩陣運算等。

import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])
print(arr1+arr2) #輸出[ 7  9 11 13 15]
print(arr1*arr2) #輸出[ 6 14 24 36 50]
print(np.sin(arr1)) #輸出[ 0.84147098  0.90929743  0.14112001 -0.7568025  -0.95892427]

3、聚合函數

聚合函數用於描述數組之間的統計關係。其中最基本的聚合函數包括sum、mean、min、max、std、var、argmin、argmax等。這些函數能夠方便地計算數組的統計信息,可以幫助我們更好地分析數據。

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr)) #輸出15
print(np.mean(arr)) #輸出3.0
print(np.max(arr)) #輸出5
print(np.min(arr)) #輸出1
print(np.std(arr)) #輸出1.4142135623730951
print(np.argmax(arr)) #輸出4

四、多維數組的創建與運算

在NumPy中,可以輕鬆地定義和使用多維數組。多維數組可以使用相同的方法進行索引、切片和運算,在處理更大型、更靈活的數據時非常有用。使用NumPy進行多維數組的操作能夠更好地進行數據分析和處理。

1、創建多維數組

可以使用多種方式創建多維數組,如使用Python列表、數組、隨機數等。可以使用NumPy提供的ndarray對象來創建多維數組。可以指定維數和大小,並使用類型關鍵字指定類型。

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr)

2、運算

多維數組也可以進行標量計算和數組計算,比如加、減、乘、除、矩陣乘法、轉置、複製等操作。可以使用相同的操作符運算符進行操作。

import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = np.array([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
print(arr1 + arr2)
print(arr1.dot(arr2)) #矩陣乘法

五、使用NumPy進行數據分析和預處理

除了基本的數組操作和運算外,NumPy還提供了一些很方便的方法和函數來進行數據分析和預處理。比如,讀取和寫入數據、條件篩選、排序、去重、合併、分組和聚合等。使用NumPy進行數據處理能夠使代碼更加簡化。

1、讀取和寫入數據

我們可以使用NumPy讀取文件中的數據,並寫入到文件中。使用genfromtxt()方法可以讀取csv格式的文件,並將其轉換為NumPy數組。如果需要將NumPy數組寫入到文件中,可以使用savetxt()方法。

import numpy as np
# 讀取csv文件
data = np.genfromtxt('data.csv', delimiter=',')
# 輸出讀取到的數據
print(data)
# 將NumPy數組寫入到csv文件中
np.savetxt('newdata.csv', data, delimiter=',')

2、條件篩選、排序、去重和聚合

使用NumPy的條件篩選、排序、去重和聚合,能夠方便地將數據進行統計分析和預處理,使得分析數據更加方便和靈活。在處理數據時,可以根據需要使用靈活的方法。

import numpy as np
# 創建一個隨機數組
arr = np.random.randint(0, 10, size=10)
# 打印出這個數組
print(arr)
# 篩選出大於5的數
print(arr[arr>5])
# 將該數組排序
print(np.sort(arr))
# 去重
print(np.unique(arr))
# 計算統計信息
print(np.mean(arr))
print(np.std(arr))

六、總結

NumPy是Python用於科學計算和數據分析的基礎之一。在分析數據時,NumPy提供了有助於處理多維數組的函數和工具,諸如索引、切片、運算符和聚合函數等等。通過它,我們可以輕鬆地創建、處理和操作多維數組,優化代碼效率。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193681.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 15:03
下一篇 2024-12-02 09:40

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • 光模塊異常,SFP未認證(entityphysicalindex=6743835)——解決方案和

    如果您遇到類似optical module exception, sfp is not certified. (entityphysicalindex=6743835)的問題,那麼…

    編程 2025-04-29
  • Python模塊下載與安裝指南

    如果想要擴展Python的功能,可以使用Python模塊來實現。但是,在使用之前,需要先下載並安裝對應的模塊。本文將從以下多個方面對Python模塊下載與安裝進行詳細的闡述,包括使…

    編程 2025-04-29
  • Python編程三劍客——模塊、包、庫

    本文主要介紹Python編程三劍客:模塊、包、庫的概念、特點、用法,以及在實際編程中的實際應用,旨在幫助讀者更好地理解和應用Python編程。 一、模塊 1、概念:Python模塊…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字符串進行格式化處理。 names = [‘A…

    編程 2025-04-29
  • 如何使用pip安裝模塊

    pip作為Python默認的包管理系統,是安裝和管理Python包的一種方式,它可以輕鬆快捷地安裝、卸載和管理Python的擴展庫、模塊等。下面從幾個方面詳細介紹pip的使用方法。…

    編程 2025-04-28
  • Python如何下載第三方模塊

    想要使Python更加強大且具備跨平台性,我們可以下載許多第三方模塊。下面將從幾個方面詳細介紹如何下載第三方模塊。 一、使用pip下載第三方模塊 pip是Python的軟件包管理器…

    編程 2025-04-28

發表回復

登錄後才能評論