import numpy as np
nd1 = np.array([1, 2, 3])
nd2 = np.array([4, 5, 6])
nd3 = np.add(nd1, nd2)
Thanks for the report. Could you please add a screenshot of what you see when you hover over add?

The language server is pylance.

There is intellisense if the language server is Jedi.
I am also having this issue (I believe it to be the same).
Pylance Lang Server Version: 2021.2.0
OS: Microsoft Windows [Version 10.0.19042.789]
Python: Python 3.8.5
VSC: 1.53.0 (This also happens in the insiders version: 1.54.0-insider)
Actual Behavior (Pylance):

Expected Behavior (Jedi):

The behavior is unchanged when using Pylance 2021.2.1-pre.1
The latest version of numpy (1.20), which was released within the last couple of weeks, now includes some type information. It's still nascent and incomplete, but symbols like sin and multiply now appear as completion suggestions.
If you don't want to upgrade to the latest version of numpy, you could try installing stubs from numpy-stubs: pip install git+https://github.com/numpy/numpy-stubs. It appears that this repo is no longer being maintained though, so upgrading numpy is a better option.
@erictraut Just upgraded to numpy-1.20.1, it works perfectly now. Thank you!
Was the issue on numpy's side then? ie is this issue still relevant just for other libraries or is it only numpy?
@irish-coffee I would suggest updating numpy also if you can. Fixed this issue for me.
Pylance relies on type information to provide accurate completion suggestions. That type information can come from a variety of sources. The most accurate and authoritative (and therefore preferred) type information comes from the package itself. Increasingly, library authors are distributing type information with their packages. That's what you see with the latest version of numpy.
In cases where a package does not yet include type information, type details can be provided by external type stubs, some of which we ship as part of pylance. Pylance is also sometimes able to infer type information if the library's source code is written in Python (as opposed to a binary compiled from C++ or other languages), but type inference is expensive and error-prone. In the fullness of time, as more package authors provide type information, type stubs and type inference will no longer be needed.
To answer your question, the issue isn't unique to numpy. It applies to many libraries. We've published guidance for library authors and are working with them to make the world a better place for Python developers.
@jmahlers Thanks for your suggestion. I just upgraded numpy to the latest version and it works very well.
@erictraut Thank you for your comments.
@erictraut Hi, thanks for your explanation, I've found the stub file for numpy in my Pylance extension path(USER_HOME\.vscode\extensions\ms-python.vscode-pylance-2021.2.3\dist\bundled\native-stubs\numpy\core\_multiarray_umath.pyi), and there are some functions of numpy like sin, cos, etc., but pylance still can't recognize those functions.
But it's worth mentioning that once Pylance worked fine before updating the anaconda environment. It's implausible that the higher anaconda version and numpy version goes wrong.
If your anaconda environment updated to numpy 1.20, it's likely the fix we made to use this stub for numpy no longer operates; the fix was to resolve compiled modules to stubs, but if you're on numpy 1.20, then its own stubs will be used instead and their construction is unfortunately not too editor friendly (the stubs are structured much differently than the real code).
We're working on "partial stub" support to be able to patch in some things, but numpy's stubbing layout may have made it much, much more difficult to fix things.
Most helpful comment
Pylance relies on type information to provide accurate completion suggestions. That type information can come from a variety of sources. The most accurate and authoritative (and therefore preferred) type information comes from the package itself. Increasingly, library authors are distributing type information with their packages. That's what you see with the latest version of numpy.
In cases where a package does not yet include type information, type details can be provided by external type stubs, some of which we ship as part of pylance. Pylance is also sometimes able to infer type information if the library's source code is written in Python (as opposed to a binary compiled from C++ or other languages), but type inference is expensive and error-prone. In the fullness of time, as more package authors provide type information, type stubs and type inference will no longer be needed.
To answer your question, the issue isn't unique to numpy. It applies to many libraries. We've published guidance for library authors and are working with them to make the world a better place for Python developers.