看[莫烦]的视频整理的学习笔记
文章目录
- Python 机器学习入门---numpy的使用(一)
- 一、numpy是什么?
- 二、一些基本函数
- 1.用array建立矩阵
- 2.建立零矩阵 zeros()
- 3.建立全1矩阵 ones()
- 4. 几乎接近0的矩 empty()
- 5.生成序列的矩 arange()
- 6.生成线段 linspace()
- 三、numpy的基本运算
- 1.减 '-'
- 2.加 '+'
- 3.乘 '*'
- 4.次方 '**'
- 5.三角函数
- 6.判断元素的大小
- 7.随机矩阵 random.random(( ))
- 8.求矩阵的和、最大值、最小值
- 9.索引矩阵中的最小值、最大值、中位数
- 10.矩阵所有数据的平均值mean() average()
- 11.矩阵所有数据的累加 cumsum()
- 12.矩阵所有数据的逐步差 diff()
- 13.非零数所在的行列 nonzero()
- 14.逐行排序 sort()
- 15.矩阵的转置 transpose()
- 16.截取矩阵 clip()
一、numpy是什么?
numpy作为python一个外部输入的模块,用于处理数据,他的写法有点像python里的list,但是list中可以存入不同类型的数据,是因为list不仅存数,还存地址,但是numpy中的array中只存同类型的数,处理更快。
二、一些基本函数 1.用array建立矩阵np.array#建立矩阵,与list不同在输出无逗号分隔 a.ndim #维度 a.shape#形状 a.size #有几个数
import numpy as np
a = np.array([[1,2,3],
[2,3,4]])
print(a)
print('number of dim:',a.ndim) #维度
print('shape:',a.shape) #形状
print('size:',a.size) #有几个数
运行结果如图
2.建立零矩阵 zeros()需要注意zeros((x,y)) 两个括号
import numpy as np a = np.zeros((3,4)) print(a)3.建立全1矩阵 ones()
import numpy as np a = np.ones((3,4)) print(a)4. 几乎接近0的矩 empty()
矩中的每个数不是0,但是非常接近0
import numpy as np a = np.empty((3,4)) print(a)5.生成序列的矩 arange()
单括号,然后可以通过reshape函数赋予形状
#arange(起点,终点,步长) import numpy as np a = np.arange(12).reshape((3,4)) print(a)6.生成线段 linspace()
其中段数是自己均分的,当然也可以再更改形状
#linspacce(起点,终点,段数) import numpy as np a = np.linspace(0,10,5) print(a)三、numpy的基本运算
首先先定义两个矩阵在前面
import numpy as np a = np.array([10,20,30,40]) b = np.arange(4) print(a,b)1.减 ‘-’
print(a-b)2.加 ‘+’
print(a+b)3.乘 ‘*’
print(a*b) #逐个相乘 print(a.dot(b))#矩阵相乘 或者写np.dot(a,b)4.次方 ‘**’
这是python中的次方运算,与其他语言有所区别
eg:a的平方------a**2
c = np.sin(a) // np.cos(a) print(a)6.判断元素的大小
print(a<25) #返回的是布尔值7.随机矩阵 random.random(( ))
c = np.random.random((3,4)) print(c)8.求矩阵的和、最大值、最小值
print(a.sun()) #或 np.sum(a) print(a.min()) print(a.max())
还可以但对针对列或者行求sum、min、max
print(np.sun(a,axis=1)) #axis=1/0,1:行,0:列
注意区分0/1所代表是列/行
import numpy as np A = np.arange(12).reshape((3,4)) print(A) print(np.argmin(A)) #或print(A.argmin()) 最小值 #最大值argmax #中位数median10.矩阵所有数据的平均值mean() average()
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) print(A.mean()) #或 print(np.average(A))11.矩阵所有数据的累加 cumsum()
A = np.arange(12).reshape((3, 4)) print(np.cumsum(A))12.矩阵所有数据的逐步差 diff()
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) print(np.diff(A))
用vscode的效果:
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) print(np.nonzero(A))
输出结果如上,因为它的输出是非零数所在的行列位置
第一个红色框部分即代表行位置,蓝色框代表列位置,所以推出第一个非零数在(0,1)
import numpy as np A = np.arange(14,2,-1).reshape((3, 4)) print(A) print(np.sort(A))
结果如图,他对每行进行从小到大的排序
用于矩阵的相乘运算中。
或者是用到A.T ----- A的转置
clip(矩阵,所有小于x的都等于x,所有大于y的都等于y)
具体说明:
clip(A,5,9)
意思是:将矩阵A中小于5的数都变为5,所有大于9的数变为9,其他数保持不变
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) print(np.clip(A, 5, 9))
运行效果如下:



