numpy-与array.sum相反(减法?)

时间:2019-03-22 21:24:20

标签: python numpy

我想知道是否有一种可以减去值的方法?与sum

类似

示例

> np.array([[10, 2], [1, 2]]).sum() 
15
" imaginary method "
> np.array([[10, 2], [1, 2]]).sub() 
6

# axis = 1
> np.array([[10, 2], [1, 2]]).sum(axis=1)
array([12,  3])
" imaginary method "
> np.array([[10, 2], [1, 2]]).sum(axis=1)
array([8,  -1])

# axis = 0
> np.array([[10, 2], [1, 2]]).sum(axis=0)
array([11,  4])
"imaginary"
> np.array([[10, 2], [1, 2]]).sub(axis=0)
array([9,  0])

我很沮丧,我无法在文档中找到任何东西(如果您不知道要查找的内容,那么numpy文档就不容易使用)。

谢谢。

2 个答案:

答案 0 :(得分:2)

from tesserocr import PyTessBaseAPI, RIL, iterate_level def get_font(image_path): with PyTessBaseAPI() as api: api.SetImageFile(image_path) api.Recognize() ri = api.GetIterator() level = RIL.SYMBOL for r in iterate_level(ri, level): symbol = r.GetUTF8Text(level) word_attributes = r.WordFontAttributes() if symbol: print u'symbol {}, font: {}'.format(symbol, word_attributes['font_name']) get_font('logo.jpg') 相等的差异是np.sum()

Docs

答案 1 :(得分:0)

np.sumnp.add.reduce

In [87]: np.add.reduce(arr, axis=0)                                             
Out[87]: array([11,  4])
In [88]: np.add.reduce(arr, axis=1)                                             
Out[88]: array([12,  3])

也有subtract ufunc

In [93]: np.subtract.reduce(arr, axis=0)                                        
Out[93]: array([9, 0])
In [94]: np.subtract.reduce(arr, axis=1)                                        
Out[94]: array([ 8, -1])

np.diff进行切片减法:

In [97]: np.subtract(arr[:-1,:], arr[1:,:])                                     
Out[97]: array([[9, 0]])
In [98]: np.subtract(arr[:,:-1], arr[:,1:])                                     
Out[98]: 
array([[ 8],
       [-1]])

对于两个元素diffsubtract.reduce做同样的事情。如果您的行或列多于2个,应该怎么办?

In [109]: arr = np.array([[10, 2, 3], [1, 2, 4], [0, 1, 2]])                    
In [110]: arr                                                                   
Out[110]: 
array([[10,  2,  3],
       [ 1,  2,  4],
       [ 0,  1,  2]])

diff进行成对减法,第1行的第0行,第2行的第1行:

In [111]: np.diff(arr, axis=0)                                                  
Out[111]: 
array([[-9,  0,  1],
       [-1, -1, -2]])

subtract.reduce进行累加,可能更容易采用accumulate替代:

In [112]: np.subtract.reduce(arr, axis=0)                                       
Out[112]: array([ 9, -1, -3])
In [113]: np.subtract.accumulate(arr, axis=0)                                   
Out[113]: 
array([[10,  2,  3],
       [ 9,  0, -1],
       [ 9, -1, -3]])