总结遇到过的一些Python函数的用法
字符串/数字类
得到随机数
import random
x = random.randint(a, b) #得到[a, b]的随机整数
x = random.randrange(a, b) #得到[a, b)的随机整数
x = random.random() #得到[0.0,1.0)的随机浮点数
x = random.uniform(a, b) #得到[a, b]的随机浮点数
数值强制转换成字符串
num = 32.222
str = '%d'%num #对num向下取整,并转换成字符串类型
一维数组和二维数组之间的转换
二维数组转一维数组
#方法一
from itertools import chain
a = [[1, 2], [3, 4]]
print(list(chain.from_iterable(a)))
#得到[1, 2, 3, 4]
#方法二
a = [[1,2], [3,4]]
print([i for item in a for i in item])
#得到[1, 2, 3, 4]
一维数组转二维数组
#方法一
a = [1,2,3]
b = [4,5,6]
print zip(a,b)
#得到[(1, 4), (2, 5), (3, 6)]
图像类
OpenCV中BGR格式图片转换成RGB格式
# -- coding: utf-8 --
import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread('1.jpg') #opencv读取图片以BGR格式
plt.imshow(img)
plt.show()
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()
图像平移
(h, w) = img.shape[:2] #img.shape[0]图片的高,img.shape[1]图片的宽
M = np.float32([[1, 0, 100],[0, 1, 200]]) #向右平移100个像素,向下平移200个像素
shifted = cv2.warpAffine(img, M, (w, h))
plt.imshow(shifted)
plt.show()
图像旋转
(cX, cY) = (w/2, h/2)
M = cv2.getRotationMatrix2D((cX, cY), 45, 1.0)
# (cX, cY)-旋转中心点
# 45-逆时针旋转45度
# 1.0-缩放倍数
rotation = cv2.warpAffine(img, M, (w,h))
plt.imshow(rotation)
plt.show()
改变图像大小
resize = cv2.resize(img, (300, 300))
plt.imshow(resize)
plt.show()
人脸识别
文件类
glob()
一个很好用的读取文件的函数
from glob import glob
data = glob('dir/*') #得到这个目录下所有文件的名称,作为列表元素存储在data中
data = glob('dir/*.txt') #得到这个目录下所有txt文件的名称,作为列表元素存储在data中
data = glob('dir/*/*') #得到这个目录下的所有目录下的所有文件名,作为列表元素存储在data中