import numpy as np
import matplotlib.pyplot as plt
img_arr = plt.imread('./1.jpeg')
# 显示图片
plt.imshow(img_arr)
# 图片调整颜色-100
arr = arr - 100
plt.imshow(arr)
# 显示图片角度 像素 像素 颜色 (700, 700, 3)
arr.shape
# 数组角度反转 [行,列,颜色]
plt.imshow(arr[::-1,::-1,:])
# 图片裁剪
plt.imshow(arr[200:600,200:600,:])
# 变形操作
# 级联图片
arr_img_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)
arr_img_3 = np.concatenate((arr_img_3,arr_img_3,arr_img_3),axis=0)
plt.imshow(arr_img_3)
# 返回一个3行4列数组
np.ones(shape=(3,4))
# 返回一维的等差数列的数组
np.linspace(0,100,num=20)
# 返回1维的等差数列
np.arange(10,50,step=2)
# 返回1维的等差数列
np.arange(10,50,step=2)
# 返回5行6列的数组 数值在0-100的随机数
arr = np.random.randint(0,100,size=(5,6))
# 返回一个数组的形状 (5, 6)
arr.shape
# 返回一个数组的维度 2 2:二维 3:三维
arr.ndim
# 返回的数组里元素的类型 dtype('int32')
arr.dtype
# 查看数组的类型 numpy.ndarray
type(arr)
# 生成一个数组 看里面元素类型
arr = np.array([1,2,3])
# 创建一个数组 执行元素类型为 int32
arr=np.array([1,2,3],dtype='int32')
# 修改数组里元素类型 无符号8位
arr.dtype='uint8'
# 随机生成1-100,5行6列的数组
arr = np.random.randint(1,100,size=(5,6))
# 取第1行数据
arr[0]
# 取第2 4 5行数据
arr[[1,3,4]]
# 切片操作 切出arr数组的前2行数据
arr[0:2,]
# 切片操作 切出arr数组中前2列数据
arr[:,0:2]
# 切片操作 切出arr数组 前3行 后2列数组
# [起始行:结束行(包头不包尾),起始列:结束列(包头不包尾)]
arr[0:3,3:-1]
# 数组反转 行数据反转
arr[::-1,]
# 数组反转 列数据反转
arr[:,::-1]
# 数组反转 行列一起反转
arr[::-1,::-1]
# 将二维数组变成一维
arr.reshape((arr.size,))
# 将一维数组变成多维
arr_1 = arr.reshape((arr.size,))
row_num = 6
size = int(arr_1.size/row_num)
arr_1.reshape((row_num,size))
# 级联操作 axis: 0.竖向 1.横向
# np.concatenate((arr,arr),axis=1)
# 常用聚合操作 sum(之和),max(最大值),min(最小值),mean() , axis: 0.竖向 1.横向
arr.sum(axis=1) # arr 横向之和
arr.max(axis=1) # arr 横向最大值
arr.min(axis=0) # arr 竖向最小值
arr.mean(axis=0) # arr 竖向平均值
# 数学函数 sin() cos() tan() around(a,保留小数位) 四舍五入
np.sin(2)
np.cos(2)
np.tan(2)
np.around(2.1355,3) # 2.136
# 统计函数
arr_2 = [1,5,7,45,9,8]
np.amin(arr_2) # 最小 1
np.amax(arr_2) # 最小 45
np.ptp(arr_2) # 最小最大值相差值 45-1=44
np.median(arr_2) # 数组中最中间2个值的平均值 7.5
mean = np.mean(arr_2)
# 所有数减去其平均值的平方和,所得结果除以该组数之个数(或个数减一,即变异数),
# 再把所得值开根号,所得之数就是这组数据的标准差。
# 平均值为12.5 ,和为75,
sum = 0
for i in arr_2: sum+= (i-mean)**2
std = sum/5 # 样本标准偏差的方差 [(x1 - 平均数)^2 + (x2 - 平均数)^2 + (x3 - 平均数)^2 + ... + (xn - 平均数)^2 ] / [n - 1]
var = sum/6 # 总体标准偏差的方差 [(x1 - 平均数)^2 + (x2 - 平均数)^2 + (x3 - 平均数)^2 + ... + (xn - 平均数)^2 ] / n
np_std = np.std(arr_2) # 总体标准偏差: 14.762
np_var = np.var(arr_2) # 总体标准偏差的方差
print('总组数 %s' % len(arr_2))
print('平均数 %s' % mean)
print('总体标准偏差 %s' % np_std)
print('样本标准偏差的方差 %s' % std)
print('总体标准偏差的方差 %s %s' % (np_var,var))
# 矩阵相关
np.eye(6) # 返回一个标准的单位矩阵
# 行列反转
arr.T
# 矩阵相乘
# 矩阵a.行1-1 * 矩阵b.列1-1 + 矩阵a.行1-2 * 矩阵b.列2-1 = 结果矩阵c.行1-1
# 矩阵a.行1-1 * 矩阵b.列1-2 + 矩阵a.行1-2 * 矩阵b.列2-2 = 结果矩阵c.行1-2
# 矩阵a.行2-1 * 矩阵b.列1-1 + 矩阵a.行2-2 * 矩阵b.列2-1 = 结果矩阵c.行2-1
# 矩阵a.行2-1 * 矩阵b.列1-2 + 矩阵a.行2-2 * 矩阵b.列2-2 = 结果矩阵c.行2-2
a1 = np.array([[2,1],[4,3]])
a2 = np.array([[1,2],[1,0]])
np.dot(a1,a2)
python-numpy模块学习-常用语法(一)
最新推荐文章于 2023-10-26 15:39:03 发布