python高效编程技巧实战
1、用opencv读取图片,返回的是一个数组(矩阵):
import cv2
img = 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、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 itertools
b=["+","-","*","/"]
for x in itertools.product(b,b,b):
print(x)
这有助于帮助我们用简洁的代码,来解答24点问题。
具体可以参考《用python解决24点问题》。
