首頁 >後端開發 >Python教學 >Numpy函式庫常用函數彙總:實作資料分析與建模的利器

Numpy函式庫常用函數彙總:實作資料分析與建模的利器

WBOY
WBOY原創
2024-01-19 09:10:071045瀏覽

Numpy函式庫常用函數彙總:實作資料分析與建模的利器

Numpy是Python中最常用的數學函式庫之一,它整合了許多最佳的數學函數和操作。 Numpy的使用非常廣泛,包括統計、線性代數、影像處理、機器學習、神經網路等領域。在資料分析和建模方面,Numpy更是不可或缺的工具之一。本文將分享Numpy常用的數學函數,以及使用這些函數實作資料分析和建模的範例程式碼。

一、建立陣列

使用Numpy中array()函數可以建立一個數組,程式碼範例:

import numpy as np

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

這會輸出[1 2 3 4 5],表示創建了一個一維數組。

我們也可以建立一個二維數組,程式碼範例:

import numpy as np

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

這會輸出:

[[1 2 3]
 [4 5 6]]

表示建立了一個二維數組。

二、陣列屬性

使用Numpy中的ndimshapesize屬性可以取得陣列的維度、形狀與元素個數,程式碼範例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim)  # 输出 2,表示数组是二维的
print(arr.shape)  # 输出 (2, 3),表示数组有2行3列
print(arr.size)  # 输出 6,表示数组有6个元素

三、陣列的運算

#Numpy陣列可以進行加、減、乘、除等運算。首先看一下為陣列加一個標量的運算,程式碼範例:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr + 2)  # 输出 [3 4 5 6 7]

表示陣列中的每個元素都加上了2。

接下來是兩個陣列相加的運算,程式碼範例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(arr1 + arr2)  # 输出 [5 7 9]

表示兩個陣列中對應的元素相加。

Numpy也提供了一些特定的運算,例如:

  • #平方運算:使用power()函數,程式碼範例:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5])
    print(np.power(arr, 2))  # 输出 [ 1  4  9 16 25]

    這表示陣列中的每個元素都平方了。

  • 開方運算:使用sqrt()函數,程式碼範例:

    import numpy as np
    
    arr = np.array([1, 4, 9, 16, 25])
    print(np.sqrt(arr))  # 输出 [1. 2. 3. 4. 5.]

    這表示陣列中的每個元素都開方了。

  • 求和:使用sum()函數,程式碼範例:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5])
    print(np.sum(arr))  # 输出 15

    這表示陣列中的所有元素求和。

  • 求最大值和最小值:使用max()min()函數,程式碼範例:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5])
    print(np.max(arr))  # 输出 5,表示数组中的最大值
    print(np.min(arr))  # 输出 1,表示数组中的最小值

四、陣列的索引和切片

我們可以使用下標來存取陣列中的元素,程式碼範例:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr[0])  # 输出 1,表示数组中的第一个元素

我們也可以對陣列進行切片操作,程式碼範例:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4])  # 输出 [2 3 4],表示从数组中取出第2个到第4个元素

五、陣列形狀的變換

Numpy中提供了一些函數用於改變陣列的形狀,其中之一是reshape()函數。我們可以使用reshape()函數來重塑陣列的形狀,程式碼範例:

import numpy as np

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

這會傳回一個形狀為(5, 1)的二維陣列:

[[1]
 [2]
 [3]
 [4]
 [5]]

六、數組的合併與拆分

Numpy中提供了一些函數用於合併和拆分數組。

我們可以使用concatenate()函數將兩個陣列沿著某個維度合併,程式碼範例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(np.concatenate((arr1, arr2)))  # 输出 [1 2 3 4 5 6]

我們也可以使用vstack() hstack()函數將兩個陣列水平或垂直堆疊在一起,程式碼範例:

import numpy as np

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

# 垂直堆叠
print(np.vstack((arr1, arr2)))  # 输出 [[1 2 3] [4 5 6]]

# 水平堆叠
print(np.hstack((arr1, arr2)))  # 输出 [1 2 3 4 5 6]

我們也可以使用split()函數將一個陣列拆分成多個數組,程式碼範例:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(np.split(arr, 5))  # 输出 [array([1]), array([2]), array([3]), array([4]), array([5])]

這會將數組拆分成5個一維數組,每個數組只包含一個元素。

七、綜合範例

現在,我們將使用Numpy中的函數實作一個簡單的資料分析和建模的範例。

範例:假設你有100個學生的成績,你想計算他們的平均成績、最高成績和最低成績。

首先,我們用random()函數產生100個隨機數,並使用mean()max()min()函數計算它們的平均值、最高值和最低值,程式碼範例:

import numpy as np

grades = np.random.randint(50, 100, 100)  # 生成50到100之间的100个随机数
print("平均成绩:", np.mean(grades))
print("最高成绩:", np.max(grades))
print("最低成绩:", np.min(grades))

接下來,我們將使用histogram()函數產生一個成績的直方圖,程式碼範例:

import matplotlib.pyplot as plt
import numpy as np

grades = np.random.randint(50, 100, 100)  # 生成50到100之间的100个随机数
hist, bins = np.histogram(grades, bins=10, range=(50, 100))

plt.hist(grades, bins=10, range=(50, 100))
plt.show()

最後,我們將使用percentile()函數計算成績的百分位數,程式碼範例:

import numpy as np

grades = np.random.randint(50, 100, 100)  # 生成50到100之间的100个随机数
print("90%的成绩高于:", np.percentile(grades, 90))

以上就是本文總結的Numpy常用函數,這些函數可以幫助我們實現資料分析和建模。希望這些範例程式碼可以幫助讀者更好地理解。

以上是Numpy函式庫常用函數彙總:實作資料分析與建模的利器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn