您的位置:首页 > 编程语言 > Python开发

Numpy技巧总结

2018-03-27 19:10 141 查看
1.根据ndarray的值返回其索引

q=np.arange(0,16,1)
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
g=np.argwhere(q==7)
# array([[7]], dtype=int64)
np.squeeze(g)
# array(7, dtype=int64)


>>> x = np.arange(6).reshape(2,3)
>>> x
array([[0, 1, 2],
[3, 4, 5]])
>>> np.argwhere(x>1)
array([[0, 2],
[1, 0],
[1, 1],
[1, 2]])


numpy的数学与统计运算

1.sum(), mean(), std():

arr3=np.random.randint(-1,3,size=(2,3,4))
arr3
#array([[[ 0,  2, -1,  1],
#        [ 2,  1, -1, -1],
#        [ 0,  0, -1,  0]],

#       [[ 0, -1,  2,  2],
#        [ 1, -1, -1,  1],
#        [ 0,  2,  0,  1]]])

arr3.sum(0)
#array([[ 2,  3, -3,  0],
#       [ 1,  0,  1,  4]])

arr3.sum(1)
#array([[ 2,  3, -3,  0],
#       [ 1,  0,  1,  4]])

arr3.sum(2)
#array([[ 2,  1, -1],
#       [ 3,  0,  3]])

arr3.sum((2,1))
#array([2, 6])

arr3.sum((1,2))
#array([2, 6])


2. nanmean(), nanstd() 对包含NaN的序列求均值或标准差时,对非NaN进行计算:

>>> a = np.array([[1
4000
, np.nan], [3, 4]])
#[[1, np.nan],
# [3,   4   ]]
>>> np.nanmean(a) #(1+3+4)/3
2.6666666666666665
>>> np.nanmean(a, axis=0)
array([ 2.,  4.])
>>> np.nanmean(a, axis=1)
array([ 1.,  3.5])


3. 判断某一维度是否存在NaN或者是否全为NaN:

a=array([[  3.,  nan,  -1.,   0.],
[ -1.,  -2.,  nan,   1.],
[ nan,  nan,  nan,  nan]])
np.isnan(a)
#array([[False,  True, False, False],
#       [False, False,  True, False],
#       [ True,  True,  True,  True]], dtype=bool)

np.isnan(a).all()
#False
np.isnan(a).all(0)
#array([False, False, False, False], dtype=bool)
np.isnan(a).all(1)
#array([False, False,  True], dtype=bool)

np.isnan(a).any()
#True
np.isnan(a).any(0)
#array([ True,  True,  True,  True], dtype=bool)
np.isnan(a).any(1)
#array([ True,  True,  True], dtype=bool)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: