numpy.all与numpy.any
numpy.all(a, axis=None, out=None, keepdims=np._NoValue)
Test whether all array elements along a given axis evaluate to True.
numpy.any(a, axis=None, out=None, keepdims=np._NoValue)
Test whether any array element along a given axis evaluates to True.
>>> a = np.array([0, 4, 5])
>>> b = np.copy(a)
>>> print(np.all(a == b)) #全部都一样输出true and运算
True
>>> print(np.any(a == b))#任意一个相同都输出true or运算
True
b[0] = 1
print(np.all(a == b)) # False
print(np.any(a == b)) # True
a = np.eye(3) 生成对角单位矩阵
print(np.all(a, axis=0)) # [False False False] 按行进行
print(np.any(a, axis=0)) # [ True True True]
np.eye()
np.eye()的函数,除了生成对角阵外,还可以将一个label数组,大小为(1,m)或者(m,1)的数组,转化成one-hot数组。
函数的原型:numpy.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
返回的是一个二维2的数组(N,M),对角线的地方为1,其余的地方为0.
(1)N:int型,表示的是输出的行数
(2)M:int型,可选项,输出的列数,如果没有就默认为N
(3)k:int型,可选项,对角线的下标,默认为0表示的是主对角线,负数表示的是低对角(低于主对角线的对角线),正数表示的是高对角(高于主对角线的对角线)。
a=np.eye(3)[1]
print(a)
# [0. 1. 0.]
>>> a=np.eye(3)[[1,2,0,1]]
>>> print("如果对应的类别号是1,2,0,1,那么转成one-hot的形式\n",a)
如果对应的类别号是1,2,0,1,那么转成one-hot的形式
[[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]]
>>> res=np.eye(3)[labels.reshape(-1)]
>>> print("labels转成one-hot形式的结果:\n",res,"\n")
labels转成one-hot形式的结果:
[[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]]
>>> print("labels转化成one-hot后的大小:",res.shape)
labels转化成one-hot后的大小: (4, 3)
>>>
数组内容:
numpy.isnan
numpy.isnan(x, *args, **kwargs)
Test element-wise for NaN and return result as a boolean array.
a=np.array([1,2,np.nan])
print(np.isnan(a))
#[False False True]
np.random.seed()
seed()中的参数被设置了之后,np.random.seed()可以按顺序产生一组固定的数组,如果使用相同的seed()值,则每次生成的随机数都相同。如果不设置这个值,那么每次生成的随机数不同。但是,只在调用的时候seed()一下并不能使生成的随机数相同,需要每次调用都seed()一下,表示种子相同,从而生成的随机数相同。np.random.seed(n)函数用于生成指定随机数,把seed()中的参数比喻成“堆”;eg. seed(5):表示第5堆种子。
在进行机器学习和深度学习中,我们会经常用到np.random.seed(),利用随机数种子,使得每次生成的随机数相同。
np.random.randint(low, high=None, size=None, dtype='l')
low—–为最小值
high—-为最大值
size—–为数组维度大小
dtype—为数据类型,默认的数据类型是np.int。
从一个均匀分布中随机采样,生成一个整数或N维整数数组,
取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
参考:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台