numpy的基础结构和矩阵基础:
文末附有源代码及视频教程
1、numpy.genfromtxt()读入txt数据,ndarray结构
2、numpy.array()把表/矩阵转成ndarray结构
3、对象(ndarray).shape得到矩阵的维数
4、numpy.array()里传入的数据必须是同一数据类型
5、取ndarray里的数据:传入索引值
6、对于一个3*1的ndarray[0:3]取第一行的前三个值(前闭后开区间)
7、对于一个3*3的ndarray[:,1]取第二列(:代表所有值)
8、对于一个3*3的ndarray[:,0:2]取前两列
9、ndarray[1:3,0:2]
10、ndarray==10,相当于对于里的每个元素做判断
11、以上述结果的返回值作为索引,可以取出10
12、拿上面返回结果做索引值,可以修改元素:
利用numpy.array生成ndarray类型的对象
1、ndarray.dtype元素类型
2、ndarray.astype(float)全部转换成float类型
3、ndarray.min()最小值
4、对于3*3的ndarray,ndarray.sum(axis=1)行求和;anxis=0列求和
常用函数
1、numpy.arange(15)
a=np.arange(15).reshape(3, 5)
2、a.shape矩阵的行数、列数
3、a.ndim矩阵维度
4、a.dtype.name数据类型
5、a.size一共多少元素
6、初始化元素全为0的矩阵np.zeros((3,4)) , 传入参数 (3,4)是元组的格式
7、全为1的np.ones((2,3,4),dtype=np.int32)三维数组,且数据类型为int32
8、np.arange( 0, 2, 0.3 )
从0开始,每隔0.3产生一个数的集合构成一个一维数组 array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
9、np.arange(12).reshape(4,3)生成并重构4乘3的numpy.ndarray
10、np.random.random((2,3))产生2*3的矩阵,每个元素都属于[0,1)
11、from numpy import pi
np.linspace( 0, 2*pi, 100 )先引入pi,从0到2pi,顺序产生100个元素构成数组
12、ndarray之间可以进行运算,b**2每个元素平方
13、A*B对应位置相乘
A.dot(B) np.dot(A,B)矩阵相乘
矩阵常用操作
1、np.exp(ndarray) np.sqrt(ndarray) np.floor(ndarray)向下取整
2、ndarray.ravel()把矩阵拉成一个一维向量
3、ndarray.T 转置
4、ndarray.reshape(3,-1)最后面那位可以填-1,代表缺省值,系统自动计算
5、矩阵拼接:np.hstack((a,b))------横着拼接,如:拼接特征
np.vstack((a,b))------纵向着拼接,如:拼接样本
6、矩阵切分
复制的三种方法
1、同位置同操作:b=a
ID相同,即指向同一个内存。两个ndarray相当于同一个对象的两个名字
2、不同位置同操作:c=a.view()
指向不同的位置,但是对其中一个进行操作,另外一个也被操作
3、不同位置,不同操作c=a.copy()---------深复制
关于索引值
arg求得索引,然后用索引求元素
矩阵扩展
矩阵元素排序
np.sort(ndarray,axis=1) 按照行排列
视频:链接:https://pan.baidu.com/s/1pW7FQjkafp4YXzq-IhHfag 密码:x33j
源代码:链接:https://pan.baidu.com/s/16x16DAm5ld2-vZriuXB-bQ 密码:i5yu