python?numpy庫(kù)介紹
1.NumPy( Numeric Python)
numpy
是一個(gè)開源的python
科學(xué)計(jì)算擴(kuò)展庫(kù),主要用來(lái)處理任意維度數(shù)組和矩陣。
相同的任務(wù),使用numpy
比直接用python
的基本數(shù)據(jù)結(jié)構(gòu)更加簡(jiǎn)單高效。
它的功能:
- 包含一個(gè)強(qiáng)大的N維數(shù)組對(duì)象
Ndarray
- 廣播功能函數(shù)
- 整合C/C++代碼的工具
- 線性代數(shù)、傅里葉變換、隨機(jī)數(shù)生成等功能
numpy
是scipy
,pandas
等數(shù)據(jù)處理或科學(xué)計(jì)算庫(kù)的基礎(chǔ)
2.numpy的引用
雖說別名可以省略或者更改,但盡量使用上述約定的別名
3.Ndarray
n維數(shù)組,它是一個(gè)相同數(shù)據(jù)類型的集合,以0為下標(biāo)開始進(jìn)行集合中元素的索引。
我們知道,python
有列表和數(shù)組此類的數(shù)據(jù)結(jié)構(gòu)。
列表:數(shù)據(jù)類型可以不同(如[3, 2.4 ,‘a’ ,“abc”]),數(shù)據(jù)是有序的
數(shù)組:數(shù)據(jù)類型相同(如[1,2,3,4])
集合: (如{2,4,3,5,7})數(shù)據(jù)是無(wú)序的
引入n維數(shù)組的意義
觀察下列兩組操作,其功能都是一樣的。
import numpy as np def pysum(): a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = [] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c def numpysum(): a = np.array([1, 2, 3, 4]) b = np.array([5, 6, 7, 8]) c = a**2+b**3 return c print("使用列表運(yùn)算的結(jié)果是:", pysum()) print("使用Numpy運(yùn)算的結(jié)果是:", numpysum())
運(yùn)行結(jié)果:
使用列表運(yùn)算的結(jié)果是: [126, 220, 352, 528]
使用Numpy運(yùn)算的結(jié)果是: [126 220 352 528]
但是很明顯:
numpy
的數(shù)組對(duì)象可以去掉元素建運(yùn)算所需要的循環(huán),使一維向量更像單個(gè)數(shù)據(jù)numpy
通過設(shè)立專門的數(shù)組對(duì)象,經(jīng)過優(yōu)化,運(yùn)算速度也相應(yīng)提升
通常情況下,在科學(xué)運(yùn)算中,一個(gè)維度所有數(shù)據(jù)的類型往往相同,這時(shí),使用數(shù)組對(duì)象采用相同的數(shù)據(jù)類型,有助于節(jié)省運(yùn)算時(shí)間和存儲(chǔ)空間
ndarray的組成
- 實(shí)際的數(shù)據(jù)
- 描述這些數(shù)據(jù)的元數(shù)據(jù)(數(shù)據(jù)維度、數(shù)據(jù)類型等)
ndarray對(duì)象的屬性
3.數(shù)據(jù)類型
當(dāng)np.array()
不指定dtype
時(shí),numpy
將根據(jù)數(shù)據(jù)情況關(guān)聯(lián)一個(gè)dtype
類型
ndarray
支持多種數(shù)據(jù)類型的原因python
基本語(yǔ)法只支持整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)3種類型- 科學(xué)計(jì)算涉及數(shù)據(jù)較多,對(duì)存儲(chǔ)和性能都有較高要求
- 對(duì)元素類型精細(xì)定義,有助于
numpy
合理使用存儲(chǔ)空間并優(yōu)化性能 - 對(duì)元素類型精細(xì)定義,有助于程序員對(duì)程序規(guī)模有合理評(píng)估
ndarray數(shù)組的創(chuàng)建
import numpy as np x = np.array([[1, 0], [2, 0], [3, 1]], np.int32) print(x) print(x.dtype)
程序輸出:
[[1 0]
[2 0]
[3 1]]
int32
adarray數(shù)組的變換
ndarray數(shù)組運(yùn)算
4.索引與切片
- 索引:獲取數(shù)組中特定位置元素的過程
- 切片:獲取數(shù)組元素子集的過程
5.隨機(jī)數(shù)函數(shù)
6.統(tǒng)計(jì)函數(shù)
7.梯度函數(shù)
8.副本與視圖
numpy線性代數(shù)
數(shù)組與標(biāo)量之間的運(yùn)算
常用numpy.linalg函數(shù)總結(jié)
(好家伙,numpy
內(nèi)置函數(shù)太多了…)
相關(guān)文章
自己搭建resnet18網(wǎng)絡(luò)并加載torchvision自帶權(quán)重的操作
這篇文章主要介紹了自己搭建resnet18網(wǎng)絡(luò)并加載torchvision自帶權(quán)重的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05MoviePy常用剪輯類及Python視頻剪輯自動(dòng)化
這篇文章主要介紹了MoviePy常用剪輯類及Python視頻剪輯自動(dòng)化,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12關(guān)于python基礎(chǔ)數(shù)據(jù)類型bytes進(jìn)制轉(zhuǎn)換
Python 3.x之后,Python自帶字符默認(rèn)使用utf-8格式編碼和顯示,bytes數(shù)據(jù)類型是utf-8格式的二進(jìn)制形式的不可變序列,需要的朋友可以參考下2023-05-05python機(jī)器人運(yùn)動(dòng)范圍問題的解答
這篇文章主要為大家詳細(xì)解答了python機(jī)器人的運(yùn)動(dòng)范圍問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04python+mysql實(shí)現(xiàn)學(xué)生信息查詢系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python+mysql實(shí)現(xiàn)學(xué)生信息查詢系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-0210分鐘教你用Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
今天,我們就來(lái)用Python實(shí)現(xiàn)微信的自動(dòng)回復(fù)功能吧,并且把接收到的消息統(tǒng)一發(fā)送到文件助手里面,方便統(tǒng)一查看。感興趣的朋友跟隨小編一起看看吧2018-11-11