1、数据的读取

本科的时候用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)

我其实在读取数据的时候还遇到了小问题,后来发现是我的数据不在同级目录中,才发现了一个小细节就是../和./的区分,上图。

python numpy从文件中读取16进制的数 numpy 读取数据_ide

 最左边我的代码在numpy这一级目录里面,但是csv的两个文件在data里面,他们俩不在同一级目录里面所以不能用./

  • ./ 代表目前文件所在目录
  • .// 代表目前文件的上一级目录
  • / 代表根目录

2、数组的转置(3种方法)

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)位置的