numpy入门
ndarray对象的属性
import numpy as np
def sun():
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
c = a**2 + b**3
return c
print(sun())
a = np.array([[1, 2, 3, 4],
[4, 5, 6, 7]])
print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)
print(a.itemsize)
ndarray数组方法的创建
ndarray数组的维度变换
ndarray数组的类型变换
ndarray数组向列表转换
数组的索引和切片
数组与标量之间的运算
numpy一元函数
numpy二元函数
总结
数据存取与函数
数据的CSV文件存取
局限性
多维数据的存取
numpy的便捷文件存取
numpy的随机函数子库
numpy.random的随机函数
numpy的统计函数
numpy的梯度函数
总结
图像实例
图像数组的表示
图像的变化
图像手绘效果实例
from PIL import Image
import numpy as np
a = np.asarray(Image.open('./0s011145223521693448713994.jpg').convert('L')).astype('float')
depth = 10. # (0-100)
grad = np.gradient(a) #取图像灰度的梯度值
grad_x, grad_y = grad #分别取横纵图像梯度值
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
vec_el = np.pi/2.2 # 光源的俯视角度,弧度值
vec_az = np.pi/4. # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az) #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az) #光源对y 轴的影响
dz = np.sin(vec_el) #光源对z 轴的影响
b = 255*(dx*uni_x + dy*uni_y + dz*uni_z) #光源归一化
b = b.clip(0,255)
im = Image.fromarray(b.astype('uint8')) #重构图像
im.save('./0s011145223521693448713994HD.jpg')