Python np.array函數:創建和操作Numpy數組

一、簡介

numpy是Python中處理數值計算的重要庫之一,提供了高效的數組(array)數據結構,方便進行向量、矩陣運算等線性代數操作。其中最基本的數據結構np.array就是本文重點介紹的對象,本文將依次從創建、基礎操作、多維數組、專用函數、文件讀寫等角度對np.array進行詳細的闡述。

二、創建數組

np.array可以從Python list或tuple創建數組,例如:

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

也可以直接傳遞多維list或tuple創建多維數組:

a = np.array([[1, 2], [3, 4], [5, 6]])
print(a)
[[1 2]
 [3 4]
 [5 6]]

另外,np.zeros、np.ones、np.empty等專門用於創建特定形狀數組的工廠函數也是常用的創建數組方式,例如:

a = np.zeros((3, 4))
print(a)
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

上例中,np.zeros((3, 4))將返回一個3×4全是0的數組。一些常用的特定形狀數組的創建方式如下表:

函數描述
np.zeros(shape) 返回指定形狀的全0數組
np.ones(shape) 返回指定形狀的全1數組
np.empty(shape) 返回指定形狀的未初始化數組
np.eye(N) 返回N×N的單位矩陣
np.linspace(start, end, num) 返回start到end範圍內,均勻間隔的num個值構成的數組
np.arange(start, end, step) 返回start到end範圍內,步長為step的序列構成的數組

三、基礎操作

一般對數組的操作都是基於數組的索引,即數組元素位置,例如:

a = np.array([10, 20, 30])
print(a[0]) #10
a[0] = 100
print(a) #[100 20 30]

此外,np.array還支持reshape、transpose、矩陣乘法等基礎數學操作。

reshape是重新定義數組的形狀(即由維度轉換為另一維度形狀),例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape((3, 2))
print(b)
[[1 2]
 [3 4]
 [5 6]]

transpose是交換數組的維度(即將原數組的行列方向互換),例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.transpose()
print(b)
[[1 4]
 [2 5]
 [3 6]]

注意:transpose函數也可使用np.transpose(a)調用。

矩陣乘法可使用@或dot函數實現:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = a@b
print(c)
[[19 22]
 [43 50]]
d = np.dot(a, b)
print(d)
[[19 22]
 [43 50]]

四、多維數組

在多元數組中,我們需要特別注意數組的索引方式。例如,對於一個三維數組a,要取其中的(0,1,1)位置元素,可以使用a[0][1][1]、a[0,1,1]等方式。

多維數組的創建可以參考上述創建數組的方式。另外,reshape函數也可用於多維數組的形狀變換。

五、專用函數

numpy庫提供了大量方便數組操作的專用函數,例如對於下面的一維數組:

a = np.array([1, 2, 3, 4, 5])

可以使用np.mean計算平均值、np.std計算標準差等專用函數:

m = np.mean(a)
print(m) #3.0
s = np.std(a)
print(s) #1.4142...

同時,在多元數組上,這些函數也有著相應的表現,例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
m = np.mean(a)
print(m) #3.5
s = np.std(a, axis=0)
print(s) #[1.5 1.5 1.5]

上例中,np.std函數在axis=0(即列方向)計算標準差,返回數組中每一列的標準差。

六、文件讀寫

numpy庫提供了方便的讀寫全局變數的numpy.ndarray類型(即數組)的函數,其中最基本的函數是np.save和np.load,可以將文件保存為二進位形式文件和重新載入文件。例如,對於以下二維數組:

a = np.array([[1, 2, 3], [4, 5 ,6]])

可以使用np.save保存為文件:

np.save('a.npy', a)

然後使用np.load重新載入存儲為文件的數組:

b = np.load('a.npy')
print(b)
[[1, 2, 3],
 [4, 5, 6]]

注意:保存的文件具有二進位格式,因此在載入時不需要定義數組形狀

結語

綜上所述,numpy中的np.array函數是Python中處理高維數值計算的重要庫之一,具有多種方便的數據結構和操作,可以方便地構建和操作數組。希望本文能夠對讀者對np.array的理解和實踐有所幫助。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 18:57
下一篇 2024-11-19 18:57

相關推薦

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

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

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python導入數組

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

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

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

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

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論