Python中的神器——Numpy

作為Python開發者,你一定知道Numpy,這是Python中數據科學領域使用最廣泛的庫之一。Numpy在科學計算和數據分析方面有著非常多的應用,尤其是在數組操作和線性代數方面表現優異。在本文中,我們將從多個方面來介紹Numpy庫,讓你更加深入地了解這個神器。

一、Numpy的基本介紹

1、Numpy的安裝使用

pip install numpy

使用import語句來載入numpy庫:

import numpy as np

2、Numpy的核心數據結構——ndarray

ndarray是Numpy中最重要的對象之一,它是一個具有相同類型和大小的元素的多維數組。ndarray在內存中的存儲方式和C語言的數組相同,因此可以在Numpy中高效地進行數組運算。下面是一個示例:

a = np.array([1, 2, 3]) # 一維數組
b = np.array([[1, 2, 3], [4, 5, 6]]) # 二維數組
c = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # 三維數組

二、Numpy中的數組運算

1、Numpy中的算數運算

Numpy中的數組運算與Python中的列表運算非常類似,其間有些微的差異,下面是主要的算數運算:

import numpy as np

# 新建兩個數組
a = np.array([1, 2, 3, 4])
b = np.array([4, 3, 2, 1])

# 數組加法
c1 = a + b
c2 = np.add(a, b)

# 數組減法
d1 = a - b
d2 = np.subtract(a, b)

# 數組乘法
e1 = a * b
e2 = np.multiply(a, b)

# 數組除法
f1 = a / b # 分母中不能為0
f2 = np.divide(a, b)

# 矩陣乘法
g1 = np.dot(a, b)
g2 = a.dot(b)

# 數組取整
h = np.floor([2.1, 3.2, 5.3]) # 向下取整

三、Numpy中的數組索引和切片

1、數組索引

可以通過下標獲取數組的元素,也可以通過整數或者布爾類型的序列來獲取數組中需要的元素:

import numpy as np

# 數組索引
a = np.array([1, 2, 3, 4, 5])
print(a[0]) # 輸出1
print(a[-1]) # 輸出5

# 通過序列獲取元素
b = np.array([1, 2, 3, 4, 5])
c = b[[0, 2, 4]]
print(c) # 輸出[1 3 5]

# 布爾索引
d = np.array([1, 2, 3, 4, 5])
bool_index = d > 2
e = d[bool_index]
print(e) # 輸出[3 4 5]

2、數組切片

可以使用切片來獲取數組中的一部分,與Python中列表類似:

import numpy as np

# 數組切片
f = np.array([1, 2, 3, 4, 5])
print(f[1:3]) # 輸出[2 3]

# 二維數組切片
g = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(g[:2, 1:]) # 輸出[[2 3] [5 6]]

四、Numpy中的數組形狀操作和轉換

1、數組形狀操作

使用shape屬性來獲取數組的形狀,可以使用reshape方法改變數組的形狀。注意,在使用reshape方法改變數組形狀時,原數組的元素個數必須與新形狀中的元素個數相等。

import numpy as np

# 獲取數組形狀
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a.shape) # 輸出(3, 2)

# 改變數組形狀
b = np.array([[1, 2], [3, 4], [5, 6]])
c = b.reshape(2, 3)
print(c) # 輸出[[1 2 3] [4 5 6]]

2、數組轉換

Numpy中的數組可以轉換成Python中的列表,也可以轉換成Pandas中的DataFrame。

import numpy as np
import pandas as pd

# 數組轉換成列表
a = np.array([1, 2, 3])
b = a.tolist()
print(b) # 輸出[1, 2, 3]

# 數組轉換成DataFrame
c = {'a': [1, 2, 3], 'b': [4, 5, 6]}
d = pd.DataFrame(c)
print(d)

五、Numpy中的數組操作

1、數組的合併和拆分

Numpy中可以通過hstack和vstack對多個數組進行合併,也可以通過split和hsplit方法對數組進行拆分。

import numpy as np

# 數組的合併
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.hstack((a, b))
d = np.vstack((a, b))

# 數組的拆分
e = np.array([[1, 2, 3], [4, 5, 6]])
f, g, h = np.split(e, 3, axis=1)

六、Numpy中的隨機數生成

Numpy中內置了一個隨機數生成器,可以通過它來生成符合特定分布的隨機數。

import numpy as np

# 生成均勻分布的隨機數
a = np.random.rand(2, 3)

# 生成正態分布的隨機數
b = np.random.randn(2, 3)

到這裡,我們對Numpy進行了全方面的介紹,如果您對Numpy有更深入的了解,可以去官方文檔https://numpy.org/查看更多細節。

原創文章,作者:OJIG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136048.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OJIG的頭像OJIG
上一篇 2024-10-04 00:15
下一篇 2024-10-04 00:15

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論