NumPy數(shù)值計(jì)算的項(xiàng)目實(shí)現(xiàn)
NumPy 是 Python 科學(xué)計(jì)算、數(shù)據(jù)分析、機(jī)器學(xué)習(xí) 的基礎(chǔ)庫(kù),核心作用是高效處理數(shù)組(矩陣)運(yùn)算,比原生 Python 列表快 10~100倍,是所有數(shù)據(jù)科學(xué)工具的基石。
一、核心概念:Numpy數(shù)組(ndarray)
Numpy 最核心的對(duì)象是 ndarray (多維數(shù)組) , 和 Python 列表的區(qū)別:
1.所有元素類型必須相同
2.支持多維
3.運(yùn)算速度極快(底層用 C語言實(shí)現(xiàn))
二、基礎(chǔ)操作
1.創(chuàng)建數(shù)組
我們可以用 Python 列表創(chuàng)建數(shù)組,當(dāng)然也可以使用 Numpy 提供的各種便捷函數(shù)來創(chuàng)建
import numpy as np # 導(dǎo)入 NumPy,并約定俗成地使用 np 作為別名 # 從列表創(chuàng)建 arr_from_list = np.array([1, 2, 3, 4, 5]) # 創(chuàng)建全為0的數(shù)組 zeros_arr = np.zeros((2, 3)) # 創(chuàng)建一個(gè)2行3列的數(shù)組 # 創(chuàng)建全為1的數(shù)組 ones_arr = np.ones((3, 2)) # 創(chuàng)建指定范圍的數(shù)組 range_arr = np.arange(0, 10, 2) # 從0到10(不含),步長(zhǎng)為2 -> [0, 2, 4, 6, 8] # 創(chuàng)建隨機(jī)數(shù)數(shù)組 random_arr = np.random.rand(2, 2) # 生成[0, 1)之間的均勻分布隨機(jī)數(shù)
2.數(shù)組屬性
了解數(shù)組的屬性可以更好的操作數(shù)組
arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape) # 形狀: (2, 3),表示2行3列 print(arr.ndim) # 維度: 2 print(arr.size) # 元素總數(shù): 6 print(arr.dtype) # 數(shù)據(jù)類型: int64 (或 int32)
3.數(shù)組運(yùn)算
Numpy 可以進(jìn)行強(qiáng)大的簡(jiǎn)潔化運(yùn)算
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # 元素級(jí)別的運(yùn)算 print(a + b) # [5 7 9] print(a * b) # [ 4 10 18] print(a ** 2) # [1 4 9] # 使用數(shù)學(xué)函數(shù) print(np.sin(a)) # [ 0.84147098 0.90929743 0.14112001]
4.索引與切片
Numpy 同 Python 列表一樣,也可進(jìn)行索引與切片操作
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(arr_2d[0, 1]) # 獲取第0行第1列的元素 -> 2 print(arr_2d[:, 1]) # 獲取第1列的所有元素 -> [2 5 8] print(arr_2d[arr_2d > 5]) # 布爾索引,獲取所有大于5的元素 -> [6 7 8 9]
5.廣播機(jī)制
廣播是 NumPy 的一個(gè)核心特性,它允許不同形狀的數(shù)組之間進(jìn)行算術(shù)運(yùn)算。簡(jiǎn)單來說,NumPy 會(huì)自動(dòng)將較小的數(shù)組“拉伸”以匹配較大數(shù)組的形狀。
a = np.array([1, 2, 3]) b = np.array([10]) # 標(biāo)量 b 會(huì)被“廣播”到與數(shù)組 a 相同的形狀,然后進(jìn)行運(yùn)算 print(a + b) # [11 12 13]
6.Numpy 其它常用的函數(shù)
data = np.array([1, 2, 3, 4, 5]) print(np.sum(data)) # 求和: 15 print(np.mean(data)) # 求平均值: 3.0 print(np.max(data)) # 求最大值: 5 print(np.std(data)) # 求標(biāo)準(zhǔn)差: 1.414...
到此這篇關(guān)于NumPy數(shù)值計(jì)算的項(xiàng)目實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)NumPy數(shù)值計(jì)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見用法詳解
這篇文章主要介紹了python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見用法,結(jié)合實(shí)例形式分析了Python mysql操作庫(kù)pymysql、sqlalchemy基本使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
Python實(shí)現(xiàn)刪除windows下的長(zhǎng)路徑文件
這篇文章主要為大家詳細(xì)介紹一下如何利用Python語言實(shí)現(xiàn)刪除windows下的長(zhǎng)路徑文件功能,文中的示例代碼講解詳細(xì),具有一定參考借鑒價(jià)值,感興趣的可以了解一下2022-07-07
詳解Python的數(shù)據(jù)庫(kù)操作(pymysql)
這篇文章主要介紹了Python的數(shù)據(jù)庫(kù)操作(pymysql),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04
有關(guān)Tensorflow梯度下降常用的優(yōu)化方法分享
今天小編就為大家分享一篇有關(guān)Tensorflow梯度下降常用的優(yōu)化方法分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python numpy數(shù)組復(fù)制使用實(shí)例解析
這篇文章主要介紹了python numpy數(shù)組復(fù)制使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
淺談numpy數(shù)組中冒號(hào)和負(fù)號(hào)的含義
下面小編就為大家分享一篇淺談numpy數(shù)組中冒號(hào)和負(fù)號(hào)的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python使用PySide6編寫一個(gè)CSV文件瀏覽器
這篇文章主要為大家詳細(xì)介紹了如何使用 PySide6 創(chuàng)建一個(gè)簡(jiǎn)單的圖形用戶界面(GUI)應(yīng)用程序,用于瀏覽 CSV 文件中的數(shù)據(jù),感興趣的小伙伴可以了解下2025-07-07

