科学计算工具NumPy(3):ndarray的元素处理
科学计算工具NumPy(1):ndarray的创建于数据类型
科学计算工具NumPy(2):ndarray的矩阵处理
科学计算工具NumPy(3):ndarray的元素处理
元素计算函数
-
ceil()
: 向上最接近的整数,参数是 number 或 array -
floor()
: 向下最接近的整数,参数是 number 或 array rint()
: 四舍五入,参数是 number 或 arrayisnan()
: 判断元素是否为 NaN(Not a Number),参数是 number 或 arraymultiply()
: 元素相乘,参数是 number 或 arraydivide()
: 元素相除,参数是 number 或 arrayabs()
:元素的绝对值,参数是 number 或 arraywhere(condition, x, y)
: 三元运算符,x if condition else y
# randn() 返回具有标准正态分布的序列。
arr = np.random.randn(2,3)print(arr)print(np.ceil(arr))print(np.floor(arr))print(np.rint(arr))print(np.isnan(arr))print(np.multiply(arr, arr))print(np.divide(arr, arr))print(np.where(arr > 0, 1, -1))
运行结果:
# print(arr)
[[-0.75803752 0.0314314 1.15323032][ 1.17567832 0.43641395 0.26288021]]# print(np.ceil(arr))
[[-0. 1. 2.][ 2. 1. 1.]]# print(np.floor(arr))
[[-1. 0. 1.][ 1. 0. 0.]]# print(np.rint(arr))
[[-1. 0. 1.][ 1. 0. 0.]]# print(np.isnan(arr))
[[False False False][False False False]]# print(np.multiply(arr, arr))
[[ 5.16284053e+00 1.77170104e+00 3.04027254e-02][ 5.11465231e-03 3.46109263e+00 1.37512421e-02]]# print(np.divide(arr, arr))
[[ 1. 1. 1.][ 1. 1. 1.]]# print(np.where(arr > 0, 1, -1))
[[ 1 1 -1][-1 1 1]]
元素统计函数
-
np.mean()
,np.sum()
:所有元素的平均值,所有元素的和,参数是 number 或 array -
np.max()
,np.min()
:所有元素的最大值,所有元素的最小值,参数是 number 或 array np.std()
,np.var()
:所有元素的标准差,所有元素的方差,参数是 number 或 arraynp.argmax()
,np.argmin()
:最大值的下标索引值,最小值的下标索引值,参数是 number 或 arraynp.cumsum()
,np.cumprod()
:返回一个一维数组,每个元素都是之前所有元素的 累加和 和 累乘积,参数是 number 或 array- 多维数组默认统计全部维度,
axis
参数可以按指定轴心统计,值为0
则按列统计,值为1
则按行统计。
arr = np.arange(12).reshape(3,4)
print(arr)print(np.cumsum(arr)) # 返回一个一维数组,每个元素都是之前所有元素的 累加和print(np.sum(arr)) # 所有元素的和print(np.sum(arr, axis=0)) # 数组的按列统计和print(np.sum(arr, axis=1)) # 数组的按行统计和
运行结果:
# print(arr)
[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]]# print(np.cumsum(arr))
[ 0 1 3 6 10 15 21 28 36 45 55 66]# print(np.sum(arr)) # 所有元素的和
66# print(np.sum(arr, axis=0)) # 0表示对数组的每一列的统计和
[12 15 18 21]# print(np.sum(arr, axis=1)) # 1表示数组的每一行的统计和
[ 6 22 38]
元素判断函数
np.any()
: 至少有一个元素满足指定条件,返回Truenp.all()
: 所有的元素满足指定条件,返回True
arr = np.random.randn(2,3)
print(arr)print(np.any(arr > 0))
print(np.all(arr > 0))
运行结果:
[[ 0.05075769 -1.31919688 -1.80636984][-1.29317016 -1.3336612 -0.19316432]]True
False
元素去重排序函数
np.unique()
:找到唯一值并返回排序结果,类似于Python的set集合
arr = np.array([[1, 2, 1], [2, 3, 4]])
print(arr)print(np.unique(arr))
运行结果:
[[1 2 1][2 3 4]][1 2 3 4]