最近在学习有关数据挖掘的知识,便与自己学习和总结学习心得,所以开始在这里进行一些笔记,同时和大家分享,基础的python 库的使用以及后面栗子的练习跟踪。
numpy 库是我使用最频繁和最基本的库,这个库尤其重要,所以我们要学好这个库。
numpy 是一个数组,即numpy.array()结构
##创建一个numpy.array()结构
import numpy as np
num = np.array([1,2,3,4])
print(num)
##创建一个二维数组
num_2= np.array([[1,2,3],[4,5,6]])
print(num_2)
#查看数据的维度
print(num.ndim)
print(num_2.ndim)
输出的结果是
[1,2,3,4]
[[1,2,3],
[4,5,6]]
1
2
##创建一个numpy.array()结构
import numpy as np
num = np.array([1,2,3,4])
print(num)
##创建一个二维数组
num_2= np.array([[1,2,3],[4,5,6]])
print(num_2)
##有了数组我们希望查看他的结构形式
print(num.shape)
print(num_2.shape)
(4,)
(2,3)
##以下均用上面的num和num_2
##我们希望想将num_2的格式转换成向量的形式
num_2_ra = num_2.ravel()
print(num_2_ra)
#我们希望将这个向量重组成3*2的格式
num_2_ra = num_2_ra.reshape(3,2)
print(num_2_ra)
[1,2,3,4,5,6]
[[1,2],
[3,4],
[5,6]]
查看数据类型
#我们想看一下num和num_2的数据类型
print(num.dtype)
print(num_2.dtype)
int32
int32
#看完数据类型,我想进行转换
num = num.astype(float)
num.dtype
dtype(“float”)
切片和索引
#我们想看一下num和num_2的数据类型
#先查看一下num_2的数据表
print(num_2)
#想要提取某一个值(都在从0 开始的)
num_2[0,0] ##取出来1
num_2[:,2] ##取出来第3列
num_2[1,:] #取出来第2行
##bool型的索引,用判断来做
num_2 ==2 ##判断num_2中属于2的值,返回true
#判断第2列等于2 ,想取出来等于2 的那一列的值】
num_3 = num_2[:,1]==2
num_2[num_3,:] #取出来所有的列
num_4 = num_2[1,:] ==5
num_4[:,num_4] ##取出来满足条件的行
##******
[[1,2,3]
[4,5,6]]
[1,2,3]
[[2],
[5]]
总结最后一部分根据bool 来取行和列:当取所有的列的时候,要判断行来满足条件。当取所有的行的时候,要判断列来满足条件就可以了
函数
#数组的计算也是非常重要的一部分
#求数组和数组之间相加
num = np.array([1,2,3]) #num 重新赋值一个array 因为数组的维度相同时候才能进行一些操作。
num+num_2
num-num_2
num*num_2
##求矩阵之间的成 dot
num = mp.array([1,2])
num_2 = np.array([1,2],
[3,4])
num.dot(num_2)
np.dot(num,num_2)
[[2,4,6],
[5.7.9]]
[[ 0, 0, 0],
[-3, -3, -3]]
[[ 1, 4, 9],
[ 4, 10, 18]]
[ 7, 10]
##使用np.arange()函数
num = np.arange(15).reshape(3,5)
print(num)
#对数组的行求和
num.sum(axis =1)
#对数组的列求和
num.sum(axis=0)
#求平均
num.mean(axis=0)
#求极值
num.max(axis=1)
num.min(axis=0)
#求e为地
np.exp(num)
#求开方
np.sqrt(num)
#求n次方
num**2
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
array([10, 35, 60])
array([15, 18, 21, 24, 27])
后面的结果自己测试获得
随机数的生成
#使用np.random.random()生成随机数
num = np.random.random((3,3))
num ##生成一个3*3的-1~1之间的随机数
np.zeros((3,3)) #产生一个3*3的0向量
np.ones((3,3))#产生一个3*3的1向量
###里面对bool 型判断,索取行和列的值的方法比较新意
后面会在应用的过程中再来补充。