1.numpy入门
# 数组的基本操作
import numpy as np
# 1.Array(数组)
# a.rank
a = np.array([1,2,3])
type(a)
# numpy.ndarray
a.shape
# (3,)
a = a.reshape((1,-1))
a.shape
# (1, 3)
a = np.array([1,2,3,4,5,6])
a.shape
# (6,)
a = a.reshape((2,-1))
a.shape
# (2, 3)
# b.zeros ones full eye random.random
a = np.zeros((3, 3))
a
# array([[0.,0.,0.],[0.,0.,0.],[0.,0.,0.]])
a = np.ones((2, 3))
a
# array([[1.,1.,1.],[1.,1.,1.]])
a = np.full((2, 3),1)
a
# array([[1.,1.,1.],[1.,1.,1.]])
a = np.eye(3)
a
# array([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]]) 单位阵
a = np.random.random(4)
print(a)
# 三行四列的随机阵(浮点型)
# 数组索引 Indexing
a = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
a[-2, 1:3] #倒数第二行,第一到三列(不包括第三列)
# array([[6,7],[10,11]])
b = a[-2:, 1:3]
b.shape
# (2, 2)
b = a[2, 1:3]
b
# array([10, 11])
b.shape
# (2,)
b = a[2:3, 1:3]
b
# array([[10, 11]])
b.shape
# (1 ,2)
b = a[1, 2]
b
# 7
b.shape
# ()
# 将数组a的第一列都加10
a[np.arange(3),1] += 10 #a[np.arange(3),[1,1,1]] += 10 效果相同
np.arange(3)
# array([0,1,2])
np.arange(3, 7)
# array([3,4,5,6])
# 获取a中大于10的元素的下标
result_index = a > 10
print(a[a>10]) #xiaoguoyushangxiangtong
# 4.数学运算与常用函数
a = np.array([[1, 2],
[3, 4]])
b = np.array([[5, 6],
[7, 8]])
# a+b
print(a+b)
np.add(a, b)
# a-b
print(a-b)
np.subtract(a, b)
# a*b
a*b
np.multiply(a, b)
# a/b
a/b
np.divide(a, b)
# 开方
np.sqrt(a)
# 矩阵乘
np.dot(a, b)
# 常用函数
# sum
np.sum(a) #所有元素求和
np.sum(a, axis=0)# 每列元素求和
np.sum(a, axis=1)# 每行元素求和
# mean
np.mean(a) # 所有元素求和的平均值
np.mean(a, axis=0) # 每列元素的平均值
np.mean(a, axis=1) # 每行元素的平均值
# uniform
print(np.random.uniform(3, 4)) # 生成一个3到4之间的随机数
# tile
np.tile(a, (1, 2)) # 以a为单位,行上重复1遍,列上重复两遍(下同)
np.tile(a, (2, 3))
# argsort
a.argsort() #排序,默认按行排序,得到排号的下标数组。
a.argsort(axis=1) # 按列排序
# 矩阵转置
a.T
np.transpose(a)
2.图像转换基础
from PIL import Image
from pylab import *
# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()
# 函数subplot(121)和函数subplot(122)代表在画布上分隔出一个1 行2 列的画布格式,
# 实现在画布上绘制“1 行2 列”的图形1“正弦曲线”和图形2“余弦曲线”的绘图布局。
pil_im = Image.open('./1.jpg')
gray()
subplot(131)
title('u原图', fontproperties=font) #图名
axis('off') #去掉坐标轴
imshow(pil_im)
pil_im = Image.open('./1.jpg').convert('L')
subplot(132)
title(u'灰度图', fontproperties=font)
axis('off')
imshow(pil_im)
pil_im = Image.open('./1.jpg').convert('L')
subplot(133)
title(u'灰度图', fontproperties=font)
axis('off')
imshow(pil_im)
show()