python高效编程技巧实战
1、用opencv读取图片,返回的是一个数组(矩阵):import cv2img = cv2.imread('0.png')此时的img,其实就是一个数组。分离图片的颜色,只需要一个简单的乘法,就可以实现:img = img*[1,1,0] #这相当于在原图中剔除了红色。保存图片也很简单:cv2.imwrite('000.png',img)简短的六行代码,就可以实现读图、分离色彩、保存的整个过程。
2、python可以调用很多人工智能接口,来解决实际问题。比如,python可以调用百度AI平台的语音合成、语音识别、文字识别、人脸识别等接口,实现相关功能。
3、列表、数组、集合的相互转化非常实用:先给出一个列表a = [1,2,3,3,2,1,1,2,3]把a转化为一个数组b = np.array(a)把a转化为集合,可以删除a里面的重复元素:c = set(a)数组也可以直接转化为集合:d = set(b)其实,列表、数组、集合,都是可以很容易的相互转化的。
4、可以很容易的改变数组的形状:a = np.array([1,2,3,3,2,1,1,2,3])b = np.reshape(a,(3,-1))把数组a转化为一个3*3的矩阵,需要3能够整除len(a),而-1的作用,就是自适应,由len(a)/3来确定。再举一个例子:a = np.array([1,2,3,3,2,1,1,2,3,7,8,9])b = np.reshape(a,(3,-1))c = np.reshape(a,(4,-1))d = np.reshape(a,(6,-1))3、4、6都能够整除12。
5、给定正整数n:n=3给定一个列表a和一个数组b:a = [1,2,3,]b = np.array(a)a和b都可以乘以n,但是作用完全不同:print(a*3) #相当于把列表里面的元素复制了3遍print(b*3) #相当于把数组里面的元素都乘以3
6、可以实现允许重复的全排列:import itertoolsb=["+","-","*","/"]for x in itertools.product(b,b,b): print(x)这有助于帮助我们用简洁的代码,来解答24点问题。具体可以参考《用python解决24点问题》。