一、numpy的背景介紹
NumPy 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算。此外,NumPy 也提供很多數學函數庫。Numpy的主要對象是同種元素的多維數組。這是一個所有的元素都是一種類型、通過一個正整數元組索引的元素表格(通常元素為數字),元素個數是元組各維度大小的乘積。
類似於列表(List)的數據結構, NumPy可以幫助程序員處理數組、矩陣和其他類型的數學元素。NumPy可以理解為 Python 的大型軟體包,該軟體包種類豐富,功能齊全,被廣泛應用於科學和工程領域的數值計算、數據分析和數據可視化。
NumPy常常與SciPy(Scientific Python)和Matplotlib(繪圖庫)一同使用,這些軟體包的目的是為Python提供一個強大的科學計算環境。在程序員廣泛使用的統計Python庫pandas中,也使用了NumPy數據結構。
二、numpy的主要功能
1、NumPy包包含的功能如下:
1.1、快速高效的多維數組對象ndarray;
1.2、用於對數組執行元素級運算及直接對數組執行數學運算的函數;
1.3、用於讀寫硬碟上基於數組的數據集的工具;
1.4、線性代數運算、傅里葉變換以及隨機數生成;
1.5、廣播功能用於對多個數組進行操作。
2、numpy中的對象是多維數組對象,即ndarray對象(N維數組對象),數組中的元素是同質的(同一類型),其下標從0開始。
3、numpy中的數組可以進行各種數據運算,包括簡單的元素運算(如加、減、乘、除等)和複雜的矩陣運算(如廣義矩陣乘法、轉置等)。
三、numpy基本操作示例
下面的代碼展示了NumPy數組的一些基本操作,如創建ndarray對象,數組的屬性和方法,以及元素級運算:
import numpy as np
# 創建一個 ndarray 對象
a = np.array([1, 2, 3])
b = np.array([[1, 2], [3, 4],[5,6]])
# 輸出數組a和b的屬性
print("數組a的維數:", a.ndim)
print("數組b的維數:", b.ndim)
print("數組a的形狀:", a.shape)
print("數組b的形狀:", b.shape)
print("數組a的元素個數:", a.size)
print("數組b的元素個數:", b.size)
print("數組a的數據類型:", a.dtype)
print("數組b的數據類型:", b.dtype)
# 數組的元素級運算
print("a+2=", a+2)
print("b*2=\n", b*2)
print("a**2=", a**2)
print("b+b=\n", b+b)
四、numpy與pandas的應用
NumPy常與pandas(Python數據分析庫)一同使用,形成一套高效的數據分析環境。pandas主要用於數據的導入和處理,NumPy主要實現數據的計算和分析。例如,我們可以用pandas將數據從不同的數據源(如csv文件、資料庫等)中導入到內存中,然後使用NumPy進行計算和分析。
下面的代碼示例展示了pandas和NumPy庫在計算收益率方面的應用:
import pandas as pd
import numpy as np
# 讀取收益率數據
df = pd.read_csv('returns.csv')
df.dropna(inplace=True)
returns = df.values
# 計算平均收益率和標準差
mean = np.mean(returns, axis=0)
std = np.std(returns, axis=0)
# 輸出平均收益率和標準差
print("平均收益率:", mean)
print("收益率標準差:", std)
五、numpy與matplotlib的應用
NumPy和matplotlib(Python繪圖庫)一同使用,可以實現數據分析與可視化的完美結合。例如,我們可以使用NumPy進行數據計算和分析,然後使用matplotlib繪製出相應的圖表。
下面的代碼展示了NumPy和matplotlib庫的應用,繪製出了正態分布的概率密度曲線:
import numpy as np
import matplotlib.pyplot as plt
# 生成正態分布隨機數
mu, h, n = 100, 20, 10000
x = mu + h * np.random.randn(n)
# 繪製直方圖
plt.hist(x, 50, density=True, alpha=0.5, color='b')
# 繪製概率密度曲線
x1 = np.linspace(mu - 3*h, mu + 3*h, 100)
y = np.exp(-(x1 - mu) ** 2 / (2*h**2)) / np.sqrt(2*np.pi*h**2)
plt.plot(x1, y, 'r--', linewidth=2)
# 顯示圖形
plt.show()
六、總結
本文介紹了NumPy的背景和主要功能,並給出了NumPy的基本操作示例及其與pandas、matplotlib等其他Python庫的應用示例。NumPy的底層用C語言編寫,能夠高效地進行數組計算和數據分析,並且功能非常強大。NumPy已經成為科學計算和數據分析領域的一個必備的工具,程序員必須掌握它的使用方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304177.html