四、ndarray的聚合操作
1.基本聚合函数
n1 = np.ones(shape=(5, 4))
--->array([[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]])
n1.sum() # numpy 的聚合,默认是把整个数组的所有数据进行运算
---> 20.0
n1.sum(axis=0) #可以通过axis控制聚合的维度
---> array([ 5., 5., 5., 5.])
常见的聚合函数:
- np.sum() 求和
- np.prod() 所有元素相乘
- np.mean() 平均值
- np.std() 标准差
- np.var() 方差
- np.median() 中数
- np.power() 幂运算
- np.sqrt() 开方
- np.min() 最小值
- np.max() 最大值
- np.argmin() 最小值的下标
- np.argmax() 最大值的下标
- np.inf 无穷大
- np.exp(10) 以e为底的指数
- np.log(10) 对数
2.any()和all()
- any: 有True返回True
- all : 有False返回False
n.array([True, True, True])
n.any()
---> True
n.all()
---> True
n.array([0, 0, 0])
n.any()
---> False
n.all()
---> False
五、ndarray的矩阵操作
1.基本的矩阵操作
1)算数运算符:
- 加减乘除
n1 = np.random.randint(0,100,size=(5,3))
n2 = np.random.randint(0,100,size=(5,3))
display(n1, n2)
n1 + n2 # numpy的默认运算符方式,数组中对应位置的数据相互运算
减,乘,除同理
2) 矩阵积np.dot()
n1 = np.array([[1,2],[3,4]])
n2 = np.array([[1,1],[2,2]])
np.dot(n1, n2)
---> array( [ [5, 5], [11, 11] ] )
矩阵积原理:
2.广播机制
- 为缺失的维度补1
- 假定缺失元素用已有值填充
m = np.ones(2,3)
---> array([[1., 1., 1.], [1., 1., 1.]])
a = np.arange(3)
---> array([0, 1, 2])
m+a
---> array([[1., 2., 3.], [1., 2., 3.]])
a = np.arange(3).reshape((3, 1))
b = np.arange(3)
a + b
---> array([[0, 1, 2], [1, 2, 3], [2, 3, 4]])
a = np.ones((4, 1))
b = np.arange(4)
a + b
---> array([[1., 2., 3., 4.],
[1., 2., 3., 4.],
[1., 2., 3., 4.],
[1., 2., 3., 4.]])
六、ndarray的排序
1.快速排序
- np.sort() 不改变输入
- ndarray.sort() 本地处理,不占用空间,但改变输入
data = np.array([9, 8, 5, 2, 3, 0, 4, 1, 6, 7])
sort_values = np.sort(data)
sort_values
---> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
data.sort()
data
---> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])