内容目录
Numpy的其他常用函数¶
np.apply_along_axis()函数¶
沿着某个指定的轴执行指定的函数
In [1]:
# 求数组a按行求平均值,并且要去掉最大值和最小值
import numpy as np
c = np.random.randint(0, 100, size=(3,20))
def get_mean(x):
y = x[np.logical_and(x != x.max(), x != x.min())].mean()
print(y)
return y
np.apply_along_axis(get_mean, axis=1, arr=c )
# 使用lamda表达式实现
np.apply_along_axis(lambda x: x[np.logical_and(x != x.max(), x != x.min())].mean(), axis=1, arr=c)
53.76470588235294 57.55555555555556 60.55555555555556
Out[1]:
array([53.76470588, 57.55555556, 60.55555556])
np.linspace()函数¶
用来将指定区间内的值平均分为多少份
In [3]:
# 把0~1平均分成11分
np.linspace(0, 1, 11)
Out[3]:
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
np.unique()函数¶
返回数组中的唯一值
In [4]:
d = np.random.randint(0, 10, size=(4, 5))
print(d)
[[1 5 5 4 9] [4 8 3 8 4] [5 6 1 4 0] [9 4 0 0 9]]
In [5]:
np.unique(d, return_counts=True)
Out[5]:
(array([0, 1, 3, 4, 5, 6, 8, 9]), array([3, 2, 1, 5, 3, 1, 2, 3]))
上述第一个数组代表是数组中唯一值的具体值,第二个数组代表对应数值出现的次数。例如:
- 第一个数组第一个为0,第二个数组第一个为7,代表唯一值0出现了7次
- 第一个数组第二个为1,第二个数组第二个为1,代表唯一值1出现了1次