numpy中的裁剪、压缩和累乘

主要介绍三个函数--以下numpy都用np代替

np.ndarray.clip(min,max):大于max的值会被重设成max,小于min的值会被重设成min;不指定min max默认为min 可以只选一个 也可以都选 

In [47]: a = np.arange(1,10)

In [49]: a.clip(max=4)
Out[49]: array([1, 2, 3, 4, 4, 4, 4, 4, 4])

In [51]: a.clip(min=6)
Out[51]: array([6, 6, 6, 6, 6, 6, 7, 8, 9])

In [52]: a.clip(3,6)
Out[52]: array([3, 3, 3, 4, 5, 6, 6, 6, 6])

In [54]: a.clip(7)
Out[54]: array([7, 7, 7, 7, 7, 7, 7, 8, 9])

In [55]: a.clip(6,2)
Out[55]: array([6, 6, 6, 6, 6, 2, 2, 2, 2])

In [57]: a.clip(max=3,min=5)
Out[57]: array([5, 5, 5, 5, 3, 3, 3, 3, 3]) 
#clip()是不会改变ndarray里元素的顺序
In [58]: a=np.array([4,3,6,1])

In [60]: a.clip(2,4)
Out[60]: array([4, 3, 4, 2])

In [61]: a.clip(2,3)
Out[61]: array([3, 3, 3, 2])

np.ndarray.compress():返回一个根据给定条件筛选后的数组

In [65]: a.compress(a<4)
Out[65]: array([1, 2, 3])

In [66]: a.compress((a>3)&(a<6))
Out[66]: array([4, 5])

numpy.ndarray.prod():返回数组中各元素累乘的结果

In [67]: k = 1

In [68]: for i in a:
    ...:     k *=i

In [69]: k
Out[69]: 362880

In [70]: a.prod()
Out[70]: 362880

In [71]: a.cumprod()
Out[71]: 
array([     1,      2,      6,     24,    120,    720,   5040,  40320,  362880])

你可能感兴趣的:(numpy中的裁剪、压缩和累乘)