Numpy模組總結大全

2021-10-14 07:25:37 字數 4369 閱讀 1296

1、numpy中常用的函式

array():

用於生成numpy.ndarray型別的資料,類似於列表

mean():

此函式的主要作用是求平均值

median():

此函式主要是求陣列中的中位數

abs():

此函式求陣列中的所有元素的絕對值

exp():

此函式求陣列中的所有元素的指數結果()指數是以e為底數,元素為指數出來的值

std():

此函式主要是求標準偏差

corrcoef():

此函式主要是用於求兩列資料中是否相關

random.normal():

從一定的區間之內隨機獲取n個符合正態分佈的數值

random.normal(loc,scale,size)

引數說明:

loc: 浮點型資料。概率分布的均值。

scale: 浮點型資料。概率分布的標準差,對應於分布的寬度,scale 越大越矮胖,scale 越小,越瘦高。

size: 整型或者整型元祖,輸出的樣本數,預設為 none,只輸出乙個值。

示例:height=np.round(np.random.normal(10,15,10),2)

weight=np.round(np.random.normal(10,15,10),2)

column_stack(tuple):

tuple為乙個元組,可以把元組中的n個陣列物件生成多行n列的numpy.ndarray物件

zeros(size):

生成size個全部為0的陣列,如果size是乙個元組的話就是生成乙個多行多列的全部為0的陣列

ones(size,dtype=float):

生成size個全部為1的陣列,如果size是乙個元組的話就是生成乙個多行多列的全部為1的陣列

fill():

可以對陣列中的值進行填充,示例:

a=np.array([1,2,3,45,6])

a.fill(2.9)

print(a)

在填充的過程中陣列裡面資料的型別是根據原始的資料而定的,如果都是整數填充的時候即使填充數

是小數那麼填充的結果也是整數

arange():

和range函式一樣的使用方法

linspace(start,end,n):(左閉右閉)

生成等差數列,將start到end分成n分,start和end都會取到,最後形成乙個等差數列

random.rand(n):

隨機生成n個0——1之間(不包含1)的n個數字

random.randn(n):

隨機生成n個符合正態分佈的數值

random.randint(start,end,n):

隨機生成在start到end之間的n個整數

where(條件):

where函式是判斷陣列中的元素是否符合條件,如果有符合條件的元素會返回元素的索引,之後可以根據

索引來獲取元素

示例:import numpy as np

a=np.array([1,52,36,9,4,6,25])

a[np.where(a>10)]

sort():

對陣列進行排序,預設的是從小到大,和列表的排序類似

argsort():

對於陣列的進行排序,不過返回的值是排序之後的索引的位置,可以再根據返回值用陣列物件進行獲取排序後

的陣列transpose():

把乙個矩陣程式設計它的轉置矩陣,示例:

s=np.array([[1,2,3],[4,5,6]])

s.transpose() #這樣寫也是可以的s.t

concatenate((x,y),axis=0):

對於x,y兩個陣列進行行的拼接,示例:

d=np.array([[1, 2, 3],[1,52,36]])

s=np.array([[1,2,3],[4,5,6]])

np.concatenate((s,d),axis=1)

vstack((x,y)): #其中的v代表vertical 垂直方向

將想x和y在垂直方向進行拼接,和concatenate函式當axis為0的時候結果是等效的

hstack((x,y)): #其中的h代表horizantal 水平方向

將想x和y在垂直方向進行拼接,和concatenate函式當axis為0的時候結果是等效的

asarray():

將列表物件轉換為陣列物件

li=[1,2,3,4]

np.asarray(li) #轉換之後就是陣列物件

fromiter(x,dtype=int):

將可迭代(x)物件中的元素取出來並且生成乙個陣列物件,其中的x必須是乙個可迭代物件,dtype引數

必須給定型別,不然無法確定獲取出來的元素的型別

示例:it=iter(range(1,10)) #iter函式不是numpy中的

np.fromiter(it,dtype=int)

陣列物件,第二個是新增的值

insert(陣列物件,索引位置,值):

在陣列中插入物件,三個引數第乙個是被插入的物件,第二個是插入元素的位置,第三個是插入的值

注意:insert函式用於一維陣列,如果強制用於多維的陣列,會先把多維陣列轉換為一維之後再插入值

除此之外在numpy中還有很多常用的函式,max,min,sum等函式用法和平常一樣,也可以使用numpy呼叫,之後把

需要求的物件放在函式後面的括號中

在陣列中修改元素(類似於列表):

一維陣列中的修改元素:

a=np.array([1,2,3])

a[1]=3

print(a)

多維陣列中的修改元素:

a=np.array([[1,2,3],[4,5,6],[7,8,9]])

a[1:,1:]=0

print(a)

2、常用的屬性

shape:

shape是乙個屬性。輸出numpy.ndarray的行和列

但是shape屬性可以進行修改,同時也是對陣列本身進行修改,示例:

d=np.array([[1, 2, 3],[1,52,36]])

d.shape=(6,1)

print(d)

d.shape=(1,6)

print(d)

以上的對於屬性的修改是直接作用於本體的,但是還有一種方式是不會對本體陣列進行修改,而是返回修改

後的乙個新的陣列,使用函式reshape(),示例:

d=np.array([[ 1, 2, 3, 1, 52, 36]])

c=d.reshape(2,3)

print(c)

dtype:

輸出陣列的型別屬性

size:

輸出元素的數量(即行和列相乘)

ndim:

檢視陣列的維度

3、陣列的特性

花式索引:

陣列獲取元素和列表是一樣的

多維陣列獲取資料的時候也是同樣的原理,在獲取時以[行,列]這樣的形式進行獲取資料

初次之外可以把需要的索引放在乙個列表中,直接使用陣列名加索引進行獲取值

示例:c=np.array([[1,2,3,5],[4,5,6,798],[8,4,25,9]])

index=[(1,2),(2,2)]

c[index]

另外可以設定陣列中的資料型別為bool,之後輸出就會把資料型別進行轉換為bool型別的

同時可以根據bool型別的陣列來獲取陣列中的值

示例:a=np.array([12,15,0,16],dtype=bool)

b=np.array([12,15,0,16])

b[a]

4、numpy中的常用數學函式

import numpy as np

np.pi:

表示數學中的π

np.sin():

求正弦值

np.cos()

求余弦值

np.tan()

求正切值

反三角函式:

np.arcsin()

around():四捨五入

floor():向下取整

ceil():向上取整

加減乘除四則運算:

比如求x=12,y=4,求x和y的四則運算以及求餘數:

np.add(x,y)——相加

np.subtract(x,y)——相減

np.multiply(x,y)——相乘

np.divide(x,y)——相除

np.mod(x,y)——取餘

排序:sort(陣列物件,axis=0)——其中陣列物件是排序的物件

argsort(陣列物件,axis=0)——對陣列的索引進行排序

numpy模組矩陣

arr1 np.random.randint 1,10,size 3,3 arr1.sort axis 0 print arr1 arr1.sort axis 1 print arr1 arr6 np.random.randint 1,10,size 10 print arr6 print arr6...

dtype函式 numpy模組

問題來了如何自學,並且獲得最權威的的解釋和用法呢?首先我們可以從numpy官網找到相關的說明,我一般會覺得從numpy user guide 或者numpy reference中搜尋有點麻煩,所以我會把自己想找的的直接放到google中,搜尋的關鍵字 numpy.dtype,直接可以找到以下鏈結 或...

Numpy模組的使用

pip install numpy i numpy numerical python 是 python語言的乙個擴充套件程式庫,支援任意維度的陣列和矩陣操作,此外也針對陣列運算提供了大量的內建方法。numpy 是乙個執行速度非常快的數學庫,主要用於陣列計算,包含 乙個強大的n維陣列物件 ndarra...