NumPy基本运算 ##ReverseColor_img.py

来源:互联网 发布:淘宝贷款怎么随借随带 编辑:程序博客网 时间:2024/06/09 23:53

基本运算

数组的算术运算是按元素的。新的数组被创建并且被结果填充。

>>> a = array( [20,30,40,50] )>>> b = arange( 4 )>>> barray([0, 1, 2, 3])>>> c = a-b>>> carray([20, 29, 38, 47])>>> b**2array([0, 1, 4, 9])>>> 10*sin(a)array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])>>> a<35array([True, True, False, False], dtype=bool)

不像许多矩阵语言,NumPy中的乘法运算符 * 指示按元素计算,矩阵乘法可以使用 dot 函数或创建矩阵对象实现(参见教程中的矩阵章节)

>>> A = array( [[1,1],...             [0,1]] )>>> B = array( [[2,0],...             [3,4]] )>>> A*B                         # elementwise productarray([[2, 0],       [0, 4]])>>> dot(A,B)                    # matrix productarray([[5, 4],       [3, 4]])

有些操作符像 +=*= 被用来更改已存在数组而不创建一个新的数组。

>>> a = ones((2,3), dtype=int)>>> b = random.random((2,3))>>> a *= 3>>> aarray([[3, 3, 3],       [3, 3, 3]])>>> b += a>>> barray([[ 3.69092703,  3.8324276 ,  3.0114541 ],       [ 3.18679111,  3.3039349 ,  3.37600289]])>>> a += b                                  # b is converted to integer type>>> aarray([[6, 6, 6],       [6, 6, 6]])

当运算的是不同类型的数组时,结果数组和更普遍和精确的已知(这种行为叫做upcast)。

>>> a = ones(3, dtype=int32)>>> b = linspace(0,pi,3)>>> b.dtype.name'float64'>>> c = a+b>>> carray([ 1.        ,  2.57079633,  4.14159265])>>> c.dtype.name'float64'>>> d = exp(c*1j)>>> darray([ 0.54030231+0.84147098j, -0.84147098+0.54030231j,       -0.54030231-0.84147098j])>>> d.dtype.name'complex128' 许多非数组运算,如计算数组所有元素之和,被作为ndarray类的方法实现>>> a = random.random((2,3))>>> aarray([[ 0.6903007 ,  0.39168346,  0.16524769],       [ 0.48819875,  0.77188505,  0.94792155]])>>> a.sum()3.4552372100521485>>> a.min()0.16524768654743593>>> a.max()0.9479215542670073

这些运算默认应用到数组好像它就是一个数字组成的列表,无关数组的形状。然而,指定 axis 参数你可以吧运算应用到数组指定的轴上:

>>> b = arange(12).reshape(3,4)>>> barray([[ 0,  1,  2,  3],       [ 4,  5,  6,  7],       [ 8,  9, 10, 11]])>>>>>> b.sum(axis=0)                            # sum of each columnarray([12, 15, 18, 21])>>>>>> b.min(axis=1)                            # min of each rowarray([0, 4, 8])>>>>>> b.cumsum(axis=1)                         # cumulative sum along each rowarray([[ 0,  1,  3,  6],       [ 4,  9, 15, 22],       [ 8, 17, 27, 38]])


##ReverseColor_img.py
import cv2
import numpy as np
img=cv2.imread('messi5.jpg')
img2= 255-img

cv2.namedWindow('image')
cv2.imshow('image',img)
cv2.waitKey(0)

cv2.namedWindow('image2')
cv2.imshow('image2',img2)
cv2.waitKey(0)


0 0
原创粉丝点击