Mojtaba Arezoomand
Mojtaba Arezoomand

Reputation: 2380

Difference between + and np.add()

I have this code:

import numpy as np


a = np.arange(10)

b = a + 1
c = np.add(a, 1)

print("a:", a)
print("b:", b)
print("c:", c)

Which prints:

a: [0 1 2 3 4 5 6 7 8 9]
b: [ 1  2  3  4  5  6  7  8  9 10]
c: [ 1  2  3  4  5  6  7  8  9 10]

I want to know what is the difference between a + 1 and np.add(a, 1)?

Upvotes: 1

Views: 510

Answers (1)

user2357112
user2357112

Reputation: 280301

numpy.add is the NumPy addition ufunc. Addition operations on arrays will usually delegate to numpy.add, but operations that don't involve arrays will usually not involve numpy.add.

For example, if we have two ordinary ints:

In [1]: import numpy

In [2]: numpy.add(1, 2)
Out[2]: 3

In [3]: type(_)
Out[3]: numpy.int64

In [4]: 1 + 2
Out[4]: 3

In [5]: type(_)
Out[5]: int

numpy.add will coerce the inputs to NumPy types, perform NumPy addition logic, and produce a NumPy output, while + performs ordinary Python int addition and produces an ordinary int.

Aside from that, numpy.add has a lot of additional arguments to control and customize how the operation is performed. You can specify an out array to write the output into, or a dtype argument to control the output dtype, or many other arguments for advanced use cases.

Upvotes: 3

Related Questions