Python 机器学习入门—numpy的使用(一)
看[莫烦]的视频整理的学习笔记
一、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
5.三角函数
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所代表是列/行
9.索引矩阵中的最小值、最大值、中位数
import numpy as np
A = np.arange(12).reshape((3,4))
print(A)
print(np.argmin(A)) #或print(A.argmin()) 最小值
#最大值argmax
#中位数median
10.矩阵所有数据的平均值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的效果:
13.非零数所在的行列 nonzero()
import numpy as np
A = np.arange(12).reshape((3, 4))
print(A)
print(np.nonzero(A))
输出结果如上,因为它的输出是非零数所在的行列位置
第一个红色框部分即代表行位置,蓝色框代表列位置,所以推出第一个非零数在(0,1)
14.逐行排序 sort()
import numpy as np
A = np.arange(14,2,-1).reshape((3, 4))
print(A)
print(np.sort(A))
结果如图,他对每行进行从小到大的排序
15.矩阵的转置 transpose()
用于矩阵的相乘运算中。
或者是用到A.T ----- A的转置
16.截取矩阵 clip()
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))
运行效果如下: