Numpy是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算。
导入numpy模块:
import numpy as np
numpy.array():数据类型需要一致,不然会自动转成字符串型
#构建二维数组
np.array([[1,2,3],[5,6,7]])
#构建一维数组
np.array([1,3,5,7,8])
构建三维数组
np.array([[[1,2,4],[24,5,7]]])
举例:
#对图片进行操作
#利用matplotlib模块获取图片数组
import matplotlib.pyplot as plt
img_arr = plt.imread('./ceshi.png') #获取到的是一个三维数组像素,颜色
#打印图片
plt.show(img_arr)
#对图片操作
plt.show(img_arr - 0.5 )
np.linspace 等差数列,指定个数
#1,100 产生11个等差数值,返回的是一个一维数组
np.linspace(1,100,num=11)
np.arange(1,100,2):指定步长为2,产生等差数值
np.random.randint():产生一个指定行列数的随机数组:
#1到100,4行5列的随机数
np.random.randint(1,100,size=(4,5))
#可以指定随机因子,这样每次运行产生的随机数都不变,随机因子为5
np.random.seed(5)
np.random.random():在0,1之间产生随机数:
np.random.random(size=(3,5))
numpy的属性:
- ndim:返回维度
img_arr.ndim
- shape:返回几行几列
img_arr.shape
- size:返回多少个数值
img_arr.size
- dtype:返回数据类型
img_arr.dtype
多维数组的操作:
arr = np.random.randint(2,50,size=(6,8))
#显示第2行
arr[1]
#显示第2行第3列
arr[1][2]
#切片
#显示前两行
arr[0:2]
#显示前两列
arr[:,0:2]
#显示前两行前两列
arr[0:2,0:2]
#行倒序
arr[::-1]
#列倒序
arr[:,::-1]
#全部倒序
arr[::-1,::-1]
图片翻转:
#行列翻转
plt.imshow(img_arr[::-1,::-1,:])
级联:
np.concatenate((img_arr,img_arr),axis=0)
plt.imshow(np.concatenate((img_arr,img_arr),axis=0))
1.求和 arr.sum()
#全部求和
arr.sum(axis=None)
2.最大值最小值 np.max/np.min
3.排序
arr.sort(axis=0)