Numpy库的学习(二)
今天来继续学习一下numpy库的使用
接着昨天的内容继续
在numpy中,我们如果想要进行一个判断使用“==”
我们来看下面的代码
vector = np.array([5,10,15,20,25]) vector == 10
我们来看看上面的代码,这段代码表示的是什么意思呢?
vector == 10 表示的是,当前的array当中所有的元素都会进行判断
是否等于10
我们可以看到,运行结果为上图所示,只有第2个值为true 那么这里可以看到是对每一个值都进行了判断
那么矩阵操作也是一样的
matrix = np.array([ [1,2,3], [4,5,6], [7,8,9], ]) matrix == 5
可以看到运行结果,只有第2行,第2列值为5的位置,为true,其他都为false
当然得到的判断结果,是一个布尔类型的
那么我们如果现在已经对判断熟悉了,我们已经做了判断
但是我想把这个元素取出来应该如果操作呢?
vector = np.array([5,10,15,20,25]) index = (vector == 10) print (index) print (vector[index])
我们先将数组,进行判断,让后将这个判断结果存入一个值中,作为一个索引
打印结果如下
结果等于10,说明可以帮我们把true返回,false值直接过滤掉
当然在矩阵操作中也是一样的
matrix = np.array([ [1,2,3], [4,5,6], [7,8,9], ]) i5 = (matrix[:,1]==5) print(i5) print(matrix[i5,:])
numpy中也有与和或这样的逻辑运算,比我我们要计算
vector = np.array([5,10,15,20,25]) equal = (vector == 10)&(vector==5) print(equal)
这里可以看出,与运算中,既要等于10,又要等于5,在返回的结果中,全为false
需要判断是否同时满足条件
在看一下或的关系
vector = np.array([5,10,15,20,25]) equal = (vector == 10)|(vector==5) print(equal)
结果可以看出,前面两个元素,都满足了或的关系,返回true
接下来我们说下如何替换满足关系的值
vector = np.array([5,10,15,20,25]) equal = (vector == 10)|(vector==5) vector[equal]=30 print(vector)
将满足条件的值进行替换,返回替换后的向量
矩阵操作如下
matrix = np.array([ [1,2,3], [4,5,6], [7,8,9], ]) i5 = matrix[:,1]==5 print(i5) matrix[i5,1] = 10 print(matrix)
运行上述代码,我们可以将中间行5的值,替换为10
接下来我们在讲下在numpy中如何做类型转换的
vector = np.array([5,10,15,20,25]) print(vector.dtype) print(vector) vector = vector.astype(float) print (vector.dtype) print(vector)
我们先将一个,类型为int的向量,的dtype值打印出来
在将这个向量进行astype的转换,转换为float值
结果可以看到,原来的int32类型,被转换成了float64类型
在说下,比如我们通常需要进行数学运算,进行最大值, 最小值得求值
vector = np.array([5,10,15,20,25]) vector.min()
取一个最小值
vector = np.array([5,10,15,20,25]) vector.max()
取一个最大值
如何对矩阵,按照行,或者按照列的方式,进行求和操作
可以看到,我们指定维度为1,也就是按照行的方式进行一个求和
matrix = np.array([ [1,2,3], [4,5,6], [7,8,9], ]) matrix.sum(axis=1)
axis =1 为按照行的方式进行求和,axis = 0 按照列的方式进行求和
好的,今天就先讲到这里,感谢各位阅读~~欢迎点赞转发!下次我们继续讲讲numpy中的矩阵操作
上一篇: php更新mysql后获取影响的行数发生异常解决方法
下一篇: Linux学习之路-基础环境配置12