py的索引和切片操作(重点)
-
索引操作和列表同理 >>> arr = np.random.randint(1,100,size=(5,6))
>>> arr
array([[49, 26, 2, 75, 91, 93],
[68, 49, 40, 40, 51, 54],
[39, 49, 16, 93, 45, 2],
[13, 43, 67, 52, 2, 46],
[74, 20, 9, 73, 91, 21]])
>>> arr[1]
array([68, 49, 40, 40, 51, 54])
>>> arr[[1,3,4]]
array([[68, 49, 40, 40, 51, 54],
[13, 43, 67, 52, 2, 46],
[74, 20, 9, 73, 91, 21]])
-
切片操作
-
切出前两行数据 >>> arr[0:2]
array([[49, 26, 2, 75, 91, 93],
[68, 49, 40, 40, 51, 54]])
-
切出前两列数据 >>> arr[:,0:2]
array([[49, 26],
[68, 49],
[39, 49],
[13, 43],
[74, 20]])
-
切出前两行的前两列的数据 >>> arr[0:2,0:2]
array([[49, 26],
[68, 49]])
-
数组行翻转 >>> arr[::-1]
array([[74, 20, 9, 73, 91, 21],
[13, 43, 67, 52, 2, 46],
[39, 49, 16, 93, 45, 2],
[68, 49, 40, 40, 51, 54],
[49, 26, 2, 75, 91, 93]])
-
数组列翻转 >>> arr[::,::-1]
array([[93, 91, 75, 2, 26, 49],
[54, 51, 40, 40, 49, 68],
[ 2, 45, 93, 16, 49, 39],
[46, 2, 52, 67, 43, 13],
[21, 91, 73, 9, 20, 74]])
-
练习:将一张图片上下左右进行翻转操作 import matplotlib.pyplot as plt
img_arr = plt.imread('/Users/ivanlee/Desktop/女明星/IMG_1473.JPG')
plt.imshow(img_arr) #将numpy数组进行可视化展示
-
练习:将图片进行指定区域的裁剪
numpy变形
-
reshape操作
级联操作
- 将多个numpy数组进行横向或者纵向的拼接
-
axis轴向的理解
-
问题:
-
对图进行拼接 arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=0)
plt.imshow(arr_3)
arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)
plt.imshow(arr_3)
常用的聚合操作
-
sum,max,min,mean
常用的数学函数
- NumPy 提供了标准的三角函数:sin()、cos()、tan()
- numpy.around(a,decimals) 函数返回指定数字的四舍五入值。
- 参数说明:
- a: 数组
- decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
常用的统计函数
- numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
- numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
- numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
- 标准差std():标准差是一组数据平均值分散程度的一种度量。
- 公式:
std = sqrt(mean((x - x.mean())**2))
- 如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。
- 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根
矩阵相关
eye返回一个标准的单位矩阵
np.eye(6)
T 转置
矩阵相乘
- numpy.dot(a, b, out=None)
- a : ndarray 数组
- b : ndarray 数组
|