numpy 庫簡單使用

numpy 庫簡單使用html

1、numpy庫簡介數組

  Python標準庫中提供了一個array類型,用於保存數組類型的數據,然而這個類型不支持多維數據,不適合數值運算。做爲Python的第三方庫numpy便有了用武之地。緩存

  numpy庫處理的最基礎數據類型是用同種元素構成的多維數組(ndarray),簡稱數組。數組中全部元素的類型必須相同,數組中元素能夠用整數索引,序號從0開始。ndarray類型的維度叫做軸(axes),軸的個數叫作秩(rank)less

2、numpy庫下載dom

pip install numpy

3、導入庫函數ide

import numpy as np

4、庫函數基本使用函數

1. 建立數組的函數 (ndarray類型)spa

 

函數code

說明orm

np.array([ x, y, z], dtype = int)

從列表或數組中建立數組

np.arange(x, y, i)

建立一個由xy,以i爲步長的數組

np.linspace(x, y, n)

建立一個由xy,等分紅n個元素的數組

np.indices((m, n))

建立一個mn列的矩陣(3維數組)

np.random.rand(m, n)

建立一個mn列的隨機數組

np.ones((m,n), dtype)

建立一個mn列的全1數組,dtype爲數據類型

np.zeros((m,n), dtype)

建立一個mn列的全0數組,dtype爲數據類型

np.empty((m,n), dtype)

建立一個m行n列的空數組,dtype爲數據類型

 

 1 import numpy as np
 2 
 3 ''' numpy --> array() '''
 4 a1 = np.array([1,2,3,5,8,13,21,34,55,89], dtype = int) # 由列表建立數組
 5 array_ = (2.3,8,10/3,5.0,1/7)   # 建立元組
 6 a2 = np.array(array_)   # 由元組建立數組
 7 print('numpy --> array():\n',a1,'\n',a2)
 8 
 9 ''' numpy --> arange() '''
10 arange_1 = np.arange(1,30,4)
11 arange_2 = np.arange(1,3,0.4)
12 print('numpy --> arange():\n',arange_1,'\n',arange_2)
13 
14 ''' numpy --> linspace() '''
15 lins_1 = np.linspace(1,10,10)
16 lins_2 = np.linspace(1,10,9, dtype = int)
17 print('numpy --> linspace():\n',lins_1,'\n',lins_2)
18 
19 ''' numpy --> random.rand() '''
20 rand_ = np.random.rand(3,4)
21 print('numpy --> random.rand():\n',rand_)
22 
23 ''' numpy --> ones() '''
24 ones_1 = np.ones((3,4))      # 默認爲float
25 ones_2 = np.ones((3,4),dtype = int)
26 print('numpy --> ones():\n',ones_1,'\n',ones_2)
27 
28 ''' numpy --> zeros() '''
29 zeros_1 = np.zeros((2,3))
30 zeros_2 = np.zeros((2,3), dtype = int)
31 print('numpy --> zeros():\n',zeros_1,'\n',zeros_2)

 

2. ndarray類型的經常使用屬性

屬性

說明

ndarray.ndim

返回數組軸的個數,即數組的秩

ndarray.shape

返回數組在每一個維度上大小的整數元組

ndarray.size

返回數組元素的總個數

ndarray.dtype

返回數組元素的數據類型

ndarray.itemsize

返回數組元素的字節大小

ndarray.data

返回數組元素的緩存區地址

ndarray.flat

數組元素的迭代器

 1 import numpy as np
 2 a = np.indices((5,8)) # 建立一個m行n列的矩陣
 3 print("數組a的秩:",a.ndim)
 4 print("數組a各維度的大小:",a.shape)
 5 print("數組a元素的總個數:",a.size)
 6 print("數組a元素的數據類型:",a.dtype)
 7 print("數組a元素的字節大小:",a.itemsize)
 8 print("數組a元素的緩存區地址:",a.data)
 9 print("數組a元素的迭代器:",a.flat)
10 print("數組a的元素:\n",a)

 

3. ndarray類型的形態操做方法

操做方法

說明

ndarray.reshape(n, m)

返回一個維度爲(n, m)的數組副本

ndarray.resize(new_shape)

修改數組的維度大小

ndarray.swapaxes(ax1, ax2)

調換數組ax1維度與ax2維度,返回調換後的數組

ndarray.flatten()

對數組進行降維,返回一維數組

ndarray.ravel()

對數組進行降維,返回數組的一個視圖

 1 import numpy as np
 2 a = np.arange(20)
 3 print('(1) 建立一維數組a:\n',a)
 4 b = a.reshape(2,10)
 5 print('(2) 由a建立(2,10)的數組b:\n',b)
 6 a.resize(4,5)
 7 print('(3) 修改數組a爲(4,5):','Shape of a:',a.shape,'\n',a)
 8 c = a.swapaxes(0,1)
 9 print('(4) 調換數組a第1維度與第2維度獲得數組c:(5,4)','Shape of c:',c.shape,'\n',c)
10 d = a.flatten()
11 print('(5) 對數組a降維,獲得一維數組d:','Shape of d:',d.shape,'\n',d)
12 e = a.ravel()
13 print('(6) 對數組a降維,獲得數組a的視圖e','Shape of e:',e.shape,'\n',e)

 

4. ndarray類型的索引與切片方法

方法

說明

x [i]

索引數組x的第i個元素

x [-i]

從後往前索引數組x的第i個元素

x [n : m]

從前日後索引數組x,不包含第m個元素

x [-m : -n]

從後往前索引數組x,結束位置爲n

x [n : m: i]

i爲步長索引數組x

1 import numpy as np
2 a = np.arange(8)
3 print('a:',a)
4 print('a[4]:',a[4])
5 print('a[-6:-3]:',a[-6:-3])
6 print('a[1:6:2]:',a[1:6:2])

 

5. ndarray類型的算術運算函數

函數

說明

np.add(x1, x2 [,y])

y = x1 + x2

np.subtract(x1, x2 [,y])

y = x1 - x2

np.multiply(x1, x2 [,y])

y = x1 * x2

np.divide(x1, x2 [,y])

y = x1 / x2

np.floor_divide(x1, x2 [,y])

y = x1 // x2

np.negative(x [,y])

y = -x

np.power(x1, x2 [,y])

y = x1 ** x2

np.remainder(x1, x2 [,y])

y = x1 % x2

1 import numpy as np
2 A1 = np.arange(1,9)
3 A2 = np.arange(1,30,4)
4 
5 print('A1:',A1)
6 print('A2:',A2)
7 print('A2-A1:',np.subtract(A2,A1))
8 print('A2//A1:',np.floor_divide(A2,A1))
9 print('A2%A1:',np.remainder(A2,A1))

 

6. ndarray類型的比較運算函數

函數

說明

np.equal(x1, x2 [,y])

y = x1 == x2

np.not_equal(x1, x2 [,y])

y = x1 != x2

np.less(x1, x2 [,y])

y = x1 < x2

np.less_equal(x1, x2 [,y])

y = x1 <= x2

np.greater(x1, x2 [,y])

y = x1 > x2

np.greater_equal(x1, x2 [,y])

y = x1 >= x2

np.where(condition [x, y])

根據條件判斷輸出xy

 1 import numpy as np
 2 A1 = np.arange(1,9)
 3 A2 = np.arange(1,30,4)
 4 
 5 print('A1:',A1)
 6 print('A2:',A2)
 7 print('A1 != A2:',np.not_equal(A1,A2))
 8 print('A1 <= A2:',np.less_equal(A1,A2))
 9 print('Use of where_1:',np.where(A1>=5,'Y','N'))
10 print('Usage as much of where:{}'.format('Y' if A1[3]>=5 else 'N'))

 

7. ndarray類型的其餘運算函數

函數

說明

np.abs(x)

返回數組x每一個元素的絕對值

np.sqrt(x)

返回數組x每一個元素的平方根

np.square(x)

返回數組x每一個元素的平方

np.sign(x)

返回數組x每一個元素的符號:1(+)0-1(-)

np.ceil(x)

返回大於或等於數組x每一個元素的最小值

np.floor(x)

返回小於或等於數組x每一個元素的最大值

np.rint(x [,out])

返回數組x每一個元素最接近的整數

np.exp(x [,out])

返回數組x每一個元素的指數值

np.log(x) / np.log2(x) / np.log10(x)

返回數組x每一個元素相應的對數(e210)

1 import numpy as np
2 A1 = np.arange(1,9)
3 A2 = np.arange(1,30,4)
4 
5 print('A1:',A1)
6 print('A2:',A2)
7 print('A2的平方根:',np.sqrt(A2))
8 print('A1的平方:',np.sqrt(A1))
9 print('A2 2的對數:',np.log2(A2))

 

  注:numpy庫還包括三角運算函數、傅立葉變換、隨機和機率分佈、基本數值統計、位運算、矩陣運算等功能,具體可到官網查詢。

相關文章
相關標籤/搜索