参考:
https://ailearning.apachecn.org/
使用Jupyter进行练习
import numpy as np
import matplotlib.pyplot as plt
a = np.array([[1, 2, 3],
[4, 5, 6]])
a
array([[1, 2, 3],
[4, 5, 6]])
求所有元素的和
np.sum(a)
21
指定求和的维度:
# 沿着第一维求和:列求和
np.sum(a, axis=0)
array([5, 7, 9])
# 沿着第二维求和:行求和
np.sum(a, axis=1)
array([ 6, 15])
# 沿着最后一维求和
np.sum(a, axis=-1)
array([ 6, 15])
或者使用sum
方法
print(a.sum())
print(a.sum(axis=0))
print(a.sum(axis=1))
print(a.sum(axis=-1))
21
[5 7 9]
[ 6 15]
[ 6 15]
求所有元素的乘积:
a.prod()
720
或者使用函数形式:
np.prod(a, axis=0)
array([ 4, 10, 18])
from numpy.random import rand
a = rand(3,4)
%precision 3
a
array([[0.78 , 0.82 , 0.194, 0.361],
[0.111, 0.97 , 0.328, 0.217],
[0.208, 0.279, 0.374, 0.414]])
全局最小:
a.min()
0.111
沿着某个轴最小:
a.min(axis=0)
array([0.111, 0.279, 0.194, 0.217])
a.min(axis=1)
array([0.194, 0.111, 0.208])
最大值同理,将min
换成max
即可
print(a.max())
print(a.max(axis=0))
print(a.max(axis=1))
0.9701699305104046
[0.78 0.97 0.374 0.414]
[0.82 0.97 0.414]
使用argmin
和argmin
方法
print(a.argmin())
print(a.argmin(axis=0))
print(a.argmin(axis=1))
print(a.argmax())
print(a.argmax(axis=0))
print(a.argmax(axis=1))
4
[1 2 0 1]
[2 0 0]
5
[0 1 2 2]
[1 1 3]
可以使用mean
方法
a = np.array([[1,2,3],
[4,5,6]])
print(a.mean())
print(a.mean(axis=0))
print(a.mean(axis=1))
3.5
[2.5 3.5 4.5]
[2. 5.]
也可以使用mean
函数
np.mean(a)
3.500
还可以使用average
函数:
np.average(a,axis=0)
array([2.5, 3.5, 4.5])
average
函数还支持加权平均:
np.average(a, axis=0, weights=[1,2])
array([3., 4., 5.])
用std
方法计算标准差:
a.std(axis=1)
array([0.816, 0.816])
用var
计算方差:
a.var(axis=1)
array([0.667, 0.667])
或者使用函数形式:
print(np.std(a, axis=1))
print(np.var(a, axis=1))
[0.816 0.816]
[0.667 0.667]
将数值限制在某个范围
print(a)
# 小于3的变成3,大于5的变成5
a.clip(3,5)
[[1 2 3]
[4 5 6]]
array([[3, 3, 3],
[4, 5, 5]])
计算最大值和最小值之差
a.ptp(axis=1)
array([2, 2])
a.ptp()
5
近似,默认到整数
a = np.array([1.35, 2.5, 1.5])
a.round()
array([1., 2., 2.])
近似到一位小数:
a.round(decimals=1)
array([1.4, 2.5, 1.5])