读txt文件
按行读取有三种方式,注意readlines和readline的区别。open是python自带打开方式,如果打不开,可以使用encoding="UTF-8"指定解码方案。
读取得到一行之后,行首行尾可能存在一些不需要的字符,就可以使用str.strip()去除,括号中是预期要去除的字符串。比如多行txt文件中会有换行符。
strip一般与split搭配使用。split也可以指定字符串,以其为界限将原始字符串分成指定的几部分,当分隔符有多个时,以第一个分隔符优先。
数组维度
np.reshape((2,2,3))
注意这里括号里面还有括号,因为是以size类型当参数的
np.transpose(x,(1,0,2))
对ndarray的坐标系进行调换。二维时相当于转置。高维以三维为例,首先要理解三维数组,相当于在二维数组的基础上又进行了一次划分,划分成前后两部分,作为第三维,但是表现在坐标中是第一个坐标。所以0,1,2转换为1,0,2就是前两个坐标顺序调换了一下。
随机数
np.random.rand((4,5))
返回的是处于[0,1)的随机浮点数。参数可以是一个整数,表示返回的随机数个数,也可以是size形的。
np.random.rand(20).reshape([4,5]) 与np.random.rand((4,5))等效
np.random.random_sample(a,size,replace,p) 从a中取size个样本,默认replace=True,有放回的抽样,默认每个样本被抽取到的概率p相等。
np.random.randint(a,b) 随机取[a,b)之间的整数
np.random.choice(a,size,replace,p) 是否放回,概率
标签
一般用到的学习还是监督学习,需要给样本贴标签。一般正负样本是分开的,分别使用0和1表示。标签一般是一维数组,使用ones或者zeros就可以得到对应的标签。需要注意的是第一个参数是shape,[0,0,0]虽然看着像一行三列的二维,但是其实它是一维的,二维是这样子的[[0,0,0]].所以生成一维标签时shape处只需要填写长度,可以使用len()得到长度,也可以使用.shape[0]
>>> np.zeros(5) array([ 0., 0., 0., 0., 0.]) >>> np.zeros((5,), dtype=np.int) array([0, 0, 0, 0, 0])
np.zeros默认得到的数据是浮点型的,而一般标签是int型的,可以通过第二个参数指定。
这样得到的标签是正负分离的,我们需要一个全新的label包含01,即把ones和zeros得到的数组进行拼接。
np.append(a,b)
np.concatenate((a,b),axis=0) axis=0时在竖直方向拼接, axis=1时在水平方向拼接。注意这里需要把a和b用括号括起来。
Reference: