




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第nditer—numpy.ndarray多維數(shù)組的迭代操作補充:詳解Numpy.ndarray
向量、矩陣多維數(shù)組是數(shù)值計算中必不可少的工具;通過對數(shù)組數(shù)據(jù)進(jìn)行批量處理,避免了對數(shù)組元素顯式地進(jìn)行循環(huán)操作,這樣做的結(jié)果是可以得到簡潔、更易維護(hù)的代碼,并且可以使用更底層的庫來實現(xiàn)數(shù)組操作。因此,向量化計算相比按順序逐元素進(jìn)行計算要快得多。
在Python科學(xué)計算環(huán)境中,Numpy庫提供了用于處理數(shù)組的高效數(shù)據(jù)結(jié)構(gòu),且Numpy的核心是使用C語言實現(xiàn)的,提供了很多處理和處理數(shù)組的函數(shù)。
NumPy支持比Python更多種類的數(shù)字類型,有5種基本數(shù)字類型:
布爾值(bool)
整數(shù)(int)
無符號整數(shù)(uint)
浮點(float)
復(fù)數(shù)(complex)
Numpy庫的核心是表示同質(zhì)的多維數(shù)據(jù)——每個元素占用相同大小的內(nèi)存塊,并且所有塊都以完全相同的方式解釋。如何解釋數(shù)組中的每個元素由單獨的數(shù)據(jù)類型對象指定,其中一個對象與每個數(shù)組相關(guān)聯(lián)。除了基本類型(整數(shù),浮點數(shù)等)之外,數(shù)據(jù)類型對象還可以表示數(shù)據(jù)結(jié)構(gòu)。
1、創(chuàng)建Numpy數(shù)組
NumPy提供了一個N維數(shù)組類型,即ndarray,它描述了相同類型的“項目”集合??梢允褂美鏝個整數(shù)來索引項目。從數(shù)組中提取的項(例如,通過索引)由Python對象表示,其類型是在NumPy中構(gòu)建的數(shù)組標(biāo)量類型之一。數(shù)組標(biāo)量允許容易地操縱更復(fù)雜的數(shù)據(jù)排列。
ndarray與array的區(qū)別
np.array只是一個便捷的函數(shù),用來創(chuàng)建一個ndarray,它本身不是一個類。
ndarray數(shù)組,是用np.ndarray類的對象表示n維數(shù)組對象
所以ndarray是一個類對象,而array是一個方法。
創(chuàng)建數(shù)組有5種常規(guī)機制:
從其他Python結(jié)構(gòu)(例如,列表,元組)轉(zhuǎn)換
numpy原生數(shù)組的創(chuàng)建(例如,arange、ones、zeros等)
從磁盤讀取數(shù)組,無論是標(biāo)準(zhǔn)格式還是自定義格式
通過使用字符串或緩沖區(qū)從原始字節(jié)創(chuàng)建數(shù)組
使用特殊庫函數(shù)(例如,random)
1、np.array
一個ndarray是具有相同類型和大小的項目的(通常是固定大小的)多維容器。尺寸和數(shù)組中的項目的數(shù)量是由它的shape定義,它是由N個非負(fù)整數(shù)組成的tuple(元組),用于指定每個維度的大小。數(shù)組中項目的類型由單獨的data-typeobject(dtype)指定,其中一個與每個ndarray相關(guān)聯(lián)。
與Python中的其他容器對象一樣,可以通過對數(shù)組進(jìn)行索引或切片(例如,使用N個整數(shù))以及通過ndarray的方法和屬性來訪問和修改ndarray的內(nèi)容。
不同的是,ndarrays可以共享相同的數(shù)據(jù),因此在一個ndarray中進(jìn)行的更改可能在另一個中可見。也就是說,ndarray可以是另一個ndarray的“view”,它所指的數(shù)據(jù)由“base”ndarray處理。ndarrays也可以是Python擁有的內(nèi)存strings或?qū)崿F(xiàn)buffer或數(shù)組接口的對象的視圖。
通過np.array()np.ndarray()創(chuàng)建
#Createanarray.
np.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)
np.ndarray(shape,dtype=float,buffer=None,offset=0,strides=None,order=None)
一個ndarray是具有相同類型和大小的項目的多維容器。
尺寸和數(shù)組中的項目的數(shù)量是由它的shape定義,它是由N個非負(fù)整數(shù)組成的tuple(元組),用于指定每個維度的大小。
不同的是,ndarrays可以共享相同的數(shù)據(jù),因此在一個ndarray中進(jìn)行的更改可能在另一個中可見。也就是說,ndarray可以是另一個ndarray的“view”,它所指的數(shù)據(jù)由“base”ndarray處理。ndarrays也可以是Python擁有的內(nèi)存strings或?qū)崿F(xiàn)buffer或數(shù)組接口的對象的視圖。
Examples:
np.array([1,2,3])
array([1,2,3])
np.array([1,2,3.0])
array([1.,2.,3.])
np.array([[1,2],[3,4]])
array([[1,2],
[3,4]])
np.array([1,2,3],ndmin=2)
array([[1,2,3]])
np.array([1,2,3],dtype=complex)
array([1.+0.j,2.+0.j,3.+0.j])
x=np.array([(1,2),(3,4)],dtype=[('a','i4'),('b','i4')])
x['a']
array([1,3])
np.array(np.mat('12;34'))
array([[1,2],
[3,4]])
np.array(np.mat('12;34'),subok=True)
matrix([[1,2],
[3,4]])
np.ndarray(shape=(2,2),dtype=float,order='F')
array([[-1.13698227e+002,4.25087011e-303],
[2.88528414e-306,3.27025015e-309]])#random
np.ndarray((2,),buffer=np.array([1,2,3]),
offset=_().itemsize,
dtype=int)#offset=1*itemsize,i.e.skipfirstelement
array([2,3])
2、基本屬性
數(shù)組屬性反映了數(shù)組本身固有的信息。通常,通過其屬性訪問數(shù)組允許您獲取并有時設(shè)置數(shù)組的內(nèi)部屬性,而無需創(chuàng)建新數(shù)組。公開的屬性是數(shù)組的核心部分,只有一些屬性可以有意義地重置而無需創(chuàng)建新數(shù)組。有關(guān)每個屬性的信息如下。
內(nèi)存布局
以下屬性包含有關(guān)數(shù)組內(nèi)存布局的信息:
方法描述
|ndarray.flags|有關(guān)數(shù)組內(nèi)存布局的信息。
|ndarray.shape|數(shù)組維度的元組。
|ndarray.strides|遍歷數(shù)組時每個維度中的字節(jié)元組。
|ndarray.ndim|數(shù)組維數(shù)。
|ndarray.data|Python緩沖區(qū)對象指向數(shù)組的數(shù)據(jù)的開頭。
|ndarray.size|數(shù)組中的元素數(shù)。
|ndarray.itemsize|一個數(shù)組元素的長度,以字節(jié)為單位。
|ndarray.nbytes|數(shù)組元素消耗的總字節(jié)數(shù)。
|ndarray.base|如果內(nèi)存來自其他對象,則為基礎(chǔ)對象。
數(shù)據(jù)類型
可以在dtype屬性中找到與該數(shù)組關(guān)聯(lián)的數(shù)據(jù)類型對象:
方法|描述
|ndarray.dtype|數(shù)組元素的數(shù)據(jù)類型。
其他屬性
方法|描述
|ndarray.T|轉(zhuǎn)置數(shù)組。
|ndarray.real|數(shù)組的真實部分。
|ndarray.imag|數(shù)組的虛部。
|ndarray.flat|數(shù)組上的一維迭代器。
|ndarray.ctypes|一個簡化數(shù)組與ctypes模塊交互的對象。
3、Numpy原生數(shù)組創(chuàng)建ndarray
方法|描述
|eye(N[,M,k,dtype,order])|返回一個二維數(shù)組,對角線上有一個,其他地方為零
|identity(n[,dtype])|返回標(biāo)識數(shù)組。
|ones(shape[,dtype,order])|返回給定形狀和類型的新數(shù)組,并填充為1
|ones_like(a[,dtype,order,subok,shape])|返回形狀與類型與給定數(shù)組相同的數(shù)組。
|zeros(shape[,dtype,order])|返回給定形狀和類型的新數(shù)組,并用零填充。
|zeros_like(a[,dtype,order,subok,shape])|返回形狀與類型與給定數(shù)組相同的零數(shù)組。
|full(shape,fill_value[,dtype,order])|返回給定形狀和類型的新數(shù)組,并用fill_value填充
|full_like(a,fill_value[,dtype,order,…])|返回形狀和類型與給定數(shù)組相同的完整數(shù)組
|empty(shape[,dtype,order])|返回給定形狀和類型的新數(shù)組,而無需初始化條目
|empty_like(prototype[,dtype,order,subok,…])|返回形狀和類型與給定數(shù)組相同的新數(shù)組
zeros_like()、ones_like()、empty_like()等帶_like()的函數(shù)創(chuàng)建與參數(shù)數(shù)組的形狀及類型相同的數(shù)組。
frombuffer()、fromstring()、fromfile()等函數(shù)可以從字節(jié)序列或文件創(chuàng)建數(shù)組
4、np.arange
|方法|描述
|arange([start,]stop[,step,][,dtype])|返回給定間隔內(nèi)的均勻間隔的值。
|linspace(start,stop[,num,endpoint,…])|返回指定間隔內(nèi)的等間隔數(shù)字。
|logspace(start,stop[,num,endpoint,base,…])|返回數(shù)以對數(shù)刻度均勻分布。
|geomspace(start,stop[,num,endpoint,…])|返回數(shù)字以對數(shù)刻度(幾何級數(shù))均勻分布。
|meshgrid(*xi,**kwargs)|從坐標(biāo)向量返回坐標(biāo)矩陣。
|mgridnd_grid|實例,它返回一個密集的多維“meshgrid”
|ogridnd_grid|實例,它返回一個開放的多維“meshgrid”
2、從現(xiàn)有的數(shù)據(jù)創(chuàng)建
方法描述
|array(object[,dtype,copy,order,subok,ndmin])|創(chuàng)建一個數(shù)組
|asarray(a[,dtype,order])|將輸入轉(zhuǎn)換為數(shù)組
|asanyarray(a[,dtype,order])|將輸入轉(zhuǎn)換為ndarray,但通過ndarray子類
|ascontiguousarray(a[,dtype])|返回內(nèi)存中的連續(xù)數(shù)組(ndim=1)(C順序)
|asmatrix(data[,dtype])|將輸入解釋為矩陣
|copy(a[,order])|返回給定對象的數(shù)組副本
|frombuffer(buffer[,dtype,count,offset])|將緩沖區(qū)解釋為一維數(shù)組
|fromfile(file[,dtype,count,sep,offset])|根據(jù)文本或二進(jìn)制文件中的數(shù)據(jù)構(gòu)造一個數(shù)組
|fromfunction(function,shape,**kwargs)|通過在每個坐標(biāo)上執(zhí)行一個函數(shù)來構(gòu)造一個數(shù)組
|fromiter(iterable,dtype[,count])|從可迭代對象創(chuàng)建一個新的一維數(shù)組
|fromstring(string[,dtype,count,sep])|從字符串中的文本數(shù)據(jù)初始化的新一維數(shù)組
|loadtxt(fname[,dtype,comments,delimiter,…])|從文本文件加載數(shù)據(jù)
3、創(chuàng)建矩陣
方法|描述
|mat(data[,dtype])|將輸入解釋為矩陣
|bmat(obj[,ldict,gdict])|從字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)等比數(shù)列試題及答案
- 2025年數(shù)字出版與電子信息知識考試測試題及答案
- 拍賣基礎(chǔ)知識試題及答案
- 西方國家的文化政策對政治的影響試題及答案
- 西方網(wǎng)絡(luò)政治與公民參與試題及答案
- 今日頭條java校招面試題及答案
- 招聘護(hù)士試題及答案
- 南瑞集團(tuán)java面試題及答案
- 2025年建筑材料與結(jié)構(gòu)力學(xué)考試題及答案
- 軟件設(shè)計師考試2025年專業(yè)技巧試題及答案
- 復(fù)雜應(yīng)用的C語言設(shè)計考題及答案
- 中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)|2024 針刺傷預(yù)防與處理課件
- 國家開放大學(xué)國開電大《健康管理實務(wù)》形考及期末終考題庫
- 2025安全生產(chǎn)月全員安全主題宣講課件二十六(41ye)
- 浙江省杭州市保俶塔中學(xué)2025屆八下數(shù)學(xué)期末經(jīng)典試題含解析
- 2025水利工程總承包合同
- 2025入團(tuán)積極分子發(fā)展對象考試題庫及答案詳解(必刷)
- 2025河南省農(nóng)業(yè)信貸擔(dān)保有限責(zé)任公司招聘32人筆試參考題庫附帶答案詳解
- 2025 年發(fā)展對象培訓(xùn)考試題及答案
- 《高效吸引目標(biāo)客戶》課件
- 江蘇鎮(zhèn)江歷年中考作文題與審題指導(dǎo)(2003-2020)
評論
0/150
提交評論