本章开始学习python中numpy的一些主要的用法
numpy:一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算的基础库,多用于在大型,多维数组上执行数值运算。
t1 = np.array([1, 2, 3])
t2 = np.array(range(10))
t3 = np.arange(10) # 速度是最快的
2.numpy数组的类型:int float bool等类型
相关介绍:本节主要介绍了数组的创建,数组的修改reshape操作,数组的简单计算+-*/的操作,广播原则。
t5 = np.arange(24).reshape(2, 3, 4) # 2代表的是块,3行4列的意思
print(t5)
2.广播机制:如果两个数组的后缘维度,即从末尾开始算起的维度的轴长度相符或者其中一方的长度为1,即认为他们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行计算。
print(t6 + 2) #数组全部加2,在原有的基础上进行自加2
print(t6 + t9)
print(t6 * t9) # 道理是一样子的 都是对应位置进行加减乘除的运算即可
# 必须要行或者是列要一致才可以,不然会进行报错。
相关介绍:我们一般不会使用numpy这个方法进行数据的读取,因为在后续的pandas里面会有更好的方法进行文件数据的读取。
np.loadtxt(frame.dtype = np.load,delimiter =None,skiprows = 0,uncols = None,unpack = False)
# frame:文件,字符串产生器
# dtype: 数据的类型
# delimiter:分割字符串,默认是任何空格,改为逗号
# skiprows:跳过x行,一般跳过第一行表头
# uncols:读取指定的列,索引,元祖类型
# unpack:Ture :转置的效果,行变成列,列变成行
GB_file_path = "./archive/GBvideos.csv"
2.加载本地的数据:一般情况下使用下面的参数即可。
t1 = np.loadtxt(GB_file_path, delimiter=",", dtype="int", unpack=True)
print(t3.transpose())
print(t3.T)
相关介绍:本节主要介绍了使用loadtxt加载本地的数据,取数组行列的操作,检索数组的操作,剪枝clip的操作,nan的操作。
# 传入文件的路径
us_file_path = "./archive/USvideos.csv"
# 加载本地的数据
t1 = np.loadtxt(us_file_path, delimiter=",", dtype="int")
# 取连续多行的操作:: 即可
print(t1[1:])
# 取不行连续的多行的操作:[[]] 里面两个[]才可以
print(t1[[0, 1, 2]])
print(t1[:, 1:]) # 取连续的多列
print(t2.clip(10, 15))
# 在t2里面把小于10的替换成10,大于15的替换成15
t2[3, 3] = np.nan
# 输出为:cannot convert float NaN to integer
相关介绍:本节主要介绍数组的拼接,数组的交换,创建一个全为0,1的数组,random随机取数的操作
1.数组的拼接:vstack竖直拼接,hstack水平拼接
np.vstack # 竖直拼接
np.hstack # 水平拼接
np.zeros() # 创建全为0的数组
np.ones() # 创建全为1的数组
np.eye() # 创建对角线全为1的数组
3.random随机取数的一些用法:用的最多的是randint的用法:在一定的数字的范围之内进行取整数。
np.random.randint(10, 20, (4, 4)) # 在10-20之间随机进行取数字,成为4行4列的数组
但是每次出现的数字都是随机的,并不是一样子,可以使用seed的操作:
# 随机种子:跟上次的数字是一样子的。
np.random.seed(10)
相关介绍:寻找重要的相关数据点即可,少数的点可以进行删除或者省略。
1.直方图:设置组距,寻找最大值,最小值,公式计算得到组数。
d = 50
# 最大值-最小值,再去除以组距然后取整
bin_nums = (t_us_comment.max() - t_us_comment.min()) // d
t_uk_like = t_uk[:, 1]
t_uk_comment = t_uk[:, -1]
plt.scatter(t_uk_like, t_uk_comment)