numpy数组的变形、级联操作、聚合操作、常用的数学函数以及矩阵相关
numpy数组的变形、级联操作、聚合操作、常用的数学函数以及矩阵相关
- 1.数组变形reshape
- 2.级联操作concatenate函数
- 1.级联操作的概念
- 2.级联操作的应用
- 3.聚合操作sum,max,min,mean
- 4.常用的数学函数
- 5.矩阵相关
1.数组变形reshape
- 多维变一维
import numpy as np
arr=np.ones((5,6),int)
arr
该数组是5行6列的数组:
array([[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1]])
a=arr.reshape((30,)) #二维变一维
a
输出:
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
- 一维变多维
a.reshape((6,5))#一维变多维
输出:
array([[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]])
2.级联操作concatenate函数
1.级联操作的概念
将多个numpy数组进行横向或者纵向的拼接;使用concatenate((a1, a2, …), axis=0)函数。
- a1,a2…是拼接的数组
- axis是拼接的方向,axis=0是纵向拼接,axis=1是横向拼接;拼接的数组维度应该相同
np.concatenate((arr,arr),axis=0) #纵向拼接
np.concatenate((arr,arr),axis=1) #横向拼接
2.级联操作的应用
-图片的拼接
import matplotlib.pyplot as plt
arr1=plt.imread('./1.jpg')
arr2=np.concatenate((arr1,arr1,arr1,arr1),axis=1)
plt.imshow(arr2)
plt.show()
3.聚合操作sum,max,min,mean
arr.sum() #求数组中所有数的和
arr.sum(axis=0) #求每列的和
arr.sum(axis=1) #求每行的和
4.常用的数学函数
- numpy提供了标准的三角函数:sin()、cos()、tan()
- numpy.around(a,decimals)函数返回指定数字的四舍五入值(a是数组,decimals是舍入的小数位数)
np.sin(arr) #对数组每个数求sin
np.around(3.84) #四舍五入结果为4.0
np.around(3.84,1) #结果为3.8
- 常用的统计函数
1.numpy.ptp():计算数组中元素最大值与最小值的差(最大值-最小值)
2.numpy.median():用于计算数组中的中位数
3.标准差std():标准差是一组数据平均分散程度的一种度量
4.方差var():标准差是方差的平方根
5.矩阵相关
1.矩阵的转置:arr.T
2.矩阵乘法:np.dot(arr,arr)
arr_t=np.array([[1,3,2,1,3],[1,8,9,8,7],[6,7,8,4,5],[2,3,6,7,8],[2,6,4,7,3]])
print(arr_t)
print("转置后:")
print(arr_t.T)
print("矩阵相乘后:")
print(np.dot(arr_t,arr_t))