Note: I am the co-founder of Wingware, makers of Wing IDE for Python
Wing IDE has those features, except for ftp upload where we recommend setting up something like CurlFtpFS or ExpanDrive.
For browsing code, you can use goto-definition, find all uses of a symbol, jump to a symbol by typing a fragment of its name, work from index menus at the top of the editors, or use the source browser.
Refactoring operations include rename, move, extract to function/method, and introduce variable.
Code completion uses both static analysis and runtime state when available (from the debugger or when working in the Python Shell) and also includes context-appropriate call tip info, documentation, etc, which in Wing are shown in the Source Assistant tool.
Syntax errors are highlighted as you type, although Wing waits until you leave a line before it starts complaining about its syntax.
FTP upload is missing, but there are various ways to do this as noted above.
Wing has a project manager. Typically you add the files you're actually working on and configure Python Path as needed in Project Properties (from the Project menu) so Wing can find all the libraries you use. Then you can open files from the project by typing a fragment of the name, search only files in the project, etc.
Wing has recent menus for most things, including files opened or visited, and there is a browser-like history for going backward from a point of definition, etc.
The debugger is very solid, with stepping, breaking on breakpoints or exceptions, data inspection, an interactive shell that works in the context of the current debug stack frame, conditional breakpoints, ability to watch values by symbolic name or object reference, and remote debugging.
There are various keyboard personalities available, including Eclipse, Visual Studio, emacs, and vi... but not NetBeans, although you can add custom key bindings.