numpy筆記補充

2021-09-26 23:57:30 字數 1727 閱讀 8814

第四篇,第五篇的部落格有介紹numpy包哦,這裡是一點補充(emmmmmm可能是很多補充)。

歸納功能

用來運算元組和矩陣,是科學計算、深度學習等高階領域的必備工具,使用tensorflow、caffe框架訓練神經網路模型時,需要進行大量複雜的運算,可以直接呼叫numpy裡面的api;還包含了很多使用的數學函式,覆蓋了很多的數學領域如,線性代數、傅利葉變換、隨機數生成。python+numpy=matlab

陣列的維數和元素數量由陣列的型(shape)來確定,shape由n個正整數組成的元組來指定,元組的每個元素對應每一堆的大小,陣列的維統稱為軸(axis),軸的數量叫做秩(rank)

補充函式介紹

import numpy as np

np.array(ndmin=指定維數,dtype=指定數值型別像複數np.complex)

np.shape :陣列在每個維度上大小的整數元組(形狀)各維度的尺度與ndim(維度)區分,ndim是根據有幾層中括號來判斷是幾層

np.ones(shape): 生成全1的給定大小的單位矩陣

np.size:陣列元素的總個數

np.zeros((shape), dtype = np.int32) : 生成int32型的全0 ,np.zeros([4, 4]) #生成為0的4x4陣列返回指定大小的陣列,並且以0作為填充

np.full(shape, a): 生成全為a

np.eye(n) : 返回對角線為1,其餘為0的陣列

np.data:包含實際陣列元素的緩衝區位址

np.flat:陣列元素的迭代器

np.empty:以隨機的方式來建立陣列

np.arange:類似於python的range函式,通過指定開始值、終值和步長來建立一維陣列,注意陣列不包括終值

np.linspace:通過指定開始值、終值和元素個數來建立一維陣列,可以通過endpoint關鍵字指定是否包括終值,預設設定是包括終值

np.logspace:和linspace類似,不過它建立等比數列

補充函式功能

可以通過修改陣列的shape屬性,在保持陣列元素個數不變的情況下,改變陣列每個軸的長度,注意並不是對陣列進行轉置,而只是改變每個軸的大小,陣列元素在記憶體中的位置沒有改變,當某個軸的元素為-1時,將根據陣列元素個數自動計算此軸的長度,使用reshape方法可以建立乙個改變了尺寸的新陣列,原陣列的shape保持不變

補充切片介紹

沒有什麼多的可以說的,就跟python切片一樣樣的,下標可用來修改元素的值,和python的列表不同,通過下標範圍獲取的新的陣列是原始陣列的乙個檢視。它與原始陣列共享同一塊資料空間。

當使用整數序列對陣列元素進行訪問時,將使用整數序列中的每個元素作為下標,整數序列可以是列表或者陣列。使用整數序列作為下標獲得的陣列不和原始陣列共享資料空間。

當使用布林陣列b作為下標訪問陣列x中的元素時,將收集陣列x中所有在陣列b中對應下標為true的元素。使用布林陣列作為下標獲得的陣列不和原始陣列共享資料空間,這樣這種方式只對應於布林陣列,不能使用布林列表。

numpy之廣播

廣播是指numpy在算術運算期間處理不同形狀的陣列的能力。對陣列的算術運算通常在相應的元素上進行。如果兩個陣列具有完全相同的形狀,則這些操作被無縫執行;如果兩個陣列的維數不相同,則較小的陣列會廣播到較大陣列的大小,以便使它們的形狀可以相容。

多維陣列的訪問和一維陣列類似,因為多維陣列有多個軸因此它的下標需要用多個值表示,numpy採用元組作為陣列的下標

numpy知識點補充

import numpy as np a np.zeros 2,2 建立2x2的全零矩陣 print a b np.ones 1,2 建立1x2的全一矩陣 print b c np.full 2,2 7 建立2x2的全為7的矩陣 print c d np.eye 2 建立全1的2x2對角矩陣 pri...

補充 Numpy 型別字元碼

import numpy as np 型別語法 np.bool np.int8 bnp.uint8 bnp.int8 16 32 64 i1 2 4 8 np.uint8 16 32 64 u1 2 4 8 np.float16 32 64 f2 4 8 np.complex64 128 c8 16...

numpy學習 不定時補充

問題描述 kaggle比賽練手中的titanic問題中,當使用隨機森林來填充損失的資料時,只判斷了其中需要補充的一列的資料是否存在null,對於其他資料沒有判斷導致出現了 分析原因後,所需要做的是判斷numpy ndarry陣列中是否存在nan,infinity或者 資料太大導致溢位,我們在這裡決定...