本科的时候用R读取数据,有时候搞不好一直捣鼓两小时,如今学了numpy,整理一下用法,方便以后出问题了自己可以瞅瞅,话不多数,开整。
##numpy读取CSV的数据 import numpy as np ###np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False) ###frame表示文件路径 ##dtype表示CSV字符串以什么数据类型读入数组,默认np.float ##delimiter表示分割字符串,默认是任何空格,改为逗号 ##skiprows表示跳过前x行,一般跳过第一行表头 ##usecols读取指定的列,索引、元组类型。 ##unpack如果TRUE,读入属性将分别写入不同的数组变量,FALSE读入数据只写入一个数组变量,默认FALSE
举个小例子,对号入座看看各个参数代表啥意思
us_file_path = "./youtube_video_data/US_video_data_numbers.csv" uk_file_path = "./youtube_video_data/GB_video_data_numbers.csv" t1 = np.loadtxt(us_file_path,delimiter=",",dtype="int",unpack=True) print(t1)
我其实在读取数据的时候还遇到了小问题,后来发现是我的数据不在同级目录中,才发现了一个小细节就是../和./的区分,上图。
最左边我的代码在numpy这一级目录里面,但是csv的两个文件在data里面,他们俩不在同一级目录里面所以不能用./
- ./ 代表目前文件所在目录
- .// 代表目前文件的上一级目录
- / 代表根目录
import numpy as np ###三种转置的方法 t2 =np.arange(24).reshape((4,6)) print(t2) t2.transpose() t2.T t2.swapaxes(1,0)3、numpy的索引和切片
感觉和python里面列表的操作一样鸭,但是得出来的数据类型不一样,本次介绍从二维数组单独取行,单独取列,行和列都取三个方面介绍。每个方面又都有,取单独一行,取连续的行、列,取独自的某几行和某几列。
import numpy as np a=np.arange(0,12).reshape((3,4)) print(a) ##取第一行,索引从0开始 print(a[0]) ##取连续的多行 print(a[1:]) ##取不连续的多行 print(a[[0,2,1]]) ##取第一列 print(a[:,0]) ##取连续的多列 print(a[:,1:]) ##取不连续的多列 print(a[:,[0,2,1]]) ##取多行和多列,如取第二行,第三列的值 print(a[1,2]) print(type(a)) ###注意这里的值不是int,而是numpy里面的数据类型ndarray ##取多行和多列,如取第2行到第3行,第2列到第3列 b=a[1:2,0:2] print(b)###取的是行和列交叉点的位置 ###取多个不相邻的点 c=a[[0,2],[1,0]] print(c) ##选出来的结果是(0,1)和(2,0)位置的



