Skip to content

Latest commit

 

History

History
182 lines (145 loc) · 4.61 KB

numpy.md

File metadata and controls

182 lines (145 loc) · 4.61 KB

0x00 numpy库的作用
最主要的功能是用来做矩阵运算。

0x01 需要掌握的基本概念
a.什么是矩阵?
b.什么是向量?

0x02 numpy的基本操作
a.创建一个矩阵

 b.随机数种子    
 >>> import numpy as np    
 >>> np.random.seed(0)    
 >>> a = np.random.random()    
 >>> a    
 0.5488135039273248    
 >>> b = np.random.random()    
 >>> b    
 0.7151893663724195    
 >>> np.random.seed(0)    
 >>> c = np.random.random()    
 >>> c    
 0.5488135039273248    
 >>>    

 a和b的值相等,就是用随机数种子做到的,随机数种子用来固定生成的随机数。    
 
 c.unique    
 用来找到所有变量(拥有去掉重复值的功能)    
 
 >>> a = np.array([[1,1,1,1,2,2,3,4]])    
 >>> a    
 array([[1, 1, 1, 1, 2, 2, 3, 4]])    
 >>> np.unique(a)    
 array([1, 2, 3, 4])    

 >>> b = np.array([1,1,1,1,2,2,3,4])    
 >>> b    
 array([1, 1, 1, 1, 2, 2, 3, 4])    
 >>> np.unique(b)    
 array([1, 2, 3, 4])    

 >>> c = np.array([[1,2,3,3,4],[3,4,5,5,6]])    
 >>> c    
 array([[1, 2, 3, 3, 4],    
        [3, 4, 5, 5, 6]])    
 >>> np.unique(c)    
 array([1, 2, 3, 4, 5, 6])    
 
 d.矩阵的选取    
 用例子来说明:    
 >>> a = np.array([[1,2,3],[4,5,6]])    
 # 先创建一个二维矩阵    
 >>> a    
 array([[1, 2, 3],    
        [4, 5, 6]])    
 # 取矩阵当中的所有内容    
 >>> a[:]    
 array([[1, 2, 3],    
        [4, 5, 6]])    
 # 反转矩阵,因为是二维数组在同一个维度当中,所以直接反转的化,会将当前维度的所有元素整体进行反转    
 >>> a[::-1]    
 array([[4, 5, 6],    
        [1, 2, 3]])    
 # 二维数组,不能有两个::    
 >>> a[:,:,::-1]    
 Traceback (most recent call last):    
   File "<stdin>", line 1, in <module>    
 IndexError: too many indices for array: array is 2-dimensional, but 3 were indexed    
 # 第一个冒号,代表从头到尾都选取,然后进行反转    
 >>> a[:,::-1]    
 array([[3, 2, 1],    
        [6, 5, 4]])    

 e.各种常用函数    
 np.random.randint()    
 
 np.zeros()    
 
 np.ones()    
 
 np.empty()    
 
 np.shape()    
 
 np.reshape()    
 
 np.eye()    
 用法:    
 生成一个单位矩阵    
 
 举例:    
 >>> d = np.eye(3)    
 >>> d    
 array([[1., 0., 0.],    
        [0., 1., 0.],    
        [0., 0., 1.]])    
        
 np.where()    
 用法:    
 符合条件置为1,不符合条件置为-1    
 
 举例:    
 >>> cond = np.arange(10)    
 >>> cond    
 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])    
 >>> np.where(cond, 1, -1)    
 array([-1,  1,  1,  1,  1,  1,  1,  1,  1,  1])    
 >>> np.where(cond>5, 1, -1)    
 array([-1, -1, -1, -1, -1, -1,  1,  1,  1,  1])    
 
 np.argmax()    
 用法:    
 找到第一个最大值的索引    
 
 举例:    
 >>> import numpy as np    
 >>> array_1 = np.array([1,5,68,98,2,6,452,12,7,13])    
 >>> print(np.argmax(array_1))    
 6    
 
 >>> array_2 = np.array([1,5,68,98,2,6,452,12,7,452])    
 >>> print(np.argmax(array_2))    
 6    
 >>>    
 
 np.polyfit()    
 最小二次拟合    
 
 用法:    
 
 举例:    
 
 
 
 np.mean()    
 用法:求平均值    
 举例:    
 >>> import numpy as np    
 >>> n1 = np.array([[1, 2, 3], [4, 5, 6]])    
 >>> n2 = np.mean(n1)    
 >>> n2    
 3.5    
 >>>    
 
 np.std()    
 用法:求标准差    
 举例:    
 >>> import numpy as np    
 >>> n1 = np.array([[1, 2, 3], [4, 5, 6]])    
 >>> n3 = np.std(n1)    
 >>> n3    
 1.707825127659933    
 >>>    

 
 np.multiply(参数1, 参数2)    
 用法:对应元素为相乘    
 举例:    
 >>> import numpy as np    
 >>> n1 = np.array([[1, 2, 3], [4, 5, 6]])    
 >>> n2 = np.mean(n1)    
 >>> n2    
 3.5    
 >>> n3 = np.std(n1)    
 >>> n3    
 1.707825127659933    
 >>> n4 = np.array([[0, 1, 2], [0, 1, 2]])    
 >>> n5 = np.multiply(n1, n4)    
 >>> n5    
 array([[ 0,  2,  6],    
        [ 0,  5, 12]])    



 
 f.矩阵乘法    
 用关键字 @    
 矩阵乘法流程:    
 # TODO