# Is e.g. SciPy better than Julia's packageS and how do good packages map to Julia's?

**URL:** <https://discourse.julialang.org/t/is-e-g-scipy-better-than-julias-packages-and-how-do-good-packages-map-to-julias/83092>\
**Category:** New to Julia\
**Created:** [June 20, 2022, 9:59pm UTC](https://discourse.julialang.org/t/is-e-g-scipy-better-than-julias-packages-and-how-do-good-packages-map-to-julias/83092 "2022-06-20T21:59:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [June 20, 2022, 9:59pm UTC](https://discourse.julialang.org/t/is-e-g-scipy-better-than-julias-packages-and-how-do-good-packages-map-to-julias/83092/1 "2022-06-20T21:59:20Z")

</div>

@gideonsimpson to nip this in the bud, you can use ALL Python packages from Julia, e.g. with PythonCall.jl

> [@Discussion on "Why I no longer recommend Julia" by Yuri Vishnevsky](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151/159):
>
> Indeed, Python suffered, and continues to suffer, many of same issues. But, Python started as a general purpose language, while Julia, at least as I understood it, was always targeted at scientific computing and related disciplines, with the intention of displacing MATLAB along with the SciPy suite. I agree that this all may clear up in time, but as you note, Python now has NumPy/SciPy. So all that core functionality that comes to mind when you think of MATLAB (arrays, integration, root find…

> as you note, Python now has NumPy/SciPy. So all that core functionality that comes to mind when you think of MATLAB (arrays, integration, root finding, interpolation, etc.) is located inside of SciPy. More challenging things, like ML, which lack some of the unified theory of older numerical algorithms, are still being worked out. My gripe is that Julia doesn’t, yet, have the full complement to SciPy as part of, if not an official set of packages

NumPy is basically in Julia as standard, but SciPy is often brought up. There is SciPy.jl:

> a Julia interface for [SciPy](https://www.scipy.org/scipylib/index.html) using [PyCall.jl](https://github.com/JuliaPy/PyCall.jl).
> 
> You can use many useful scientific functions of SciPy from Julia codes.

Note, “many” functions not all. But you CAN still use all the functions. It’s just that the wrapper, providing Julian API, doesn’t provide all. You can always use the Python API directly, bypassing package-specific wrappers. [E.g. at the time I used PyCall for some interpolation that wasn’t yet available, I think it’s now, or would use PythonCall. Not sure if it or SciPy.jl, which I then didn’t know of, supports translating indexes, @cjdoris maybe it should? As with `OffsetArray`s?]

@ParadaCarleton:

> There are 3 popular ways of doing automatic differentiation for machine learning in Python – TensorFlow, PyTorch, and JAX. (Theano has been abandoned).

Right, and again all of them can be used directly, through the Python API (also lower-level APIs e.g. for PyTorch, already done in Julia). I would still like to know the one-to-many mapping of each one to similar Julia package[s].

> Of course, most of the Julia community are academics or in ML. So let’s say Julia users are 7 or so times more likely to work on autodiff-related projects. So if Julia were equally fragmented, we’d expect to have 3\*7/21 = 1 major framework for automatic differentiation. Instead, we have at least 10 that I found without much work:

- Enzyme
- ReverseDiff
- Diffractor
- Nabla
- Zygote
- Autograd
- Yota
- ReversePropagation
- ForwardDiff
- Tracker

I don’t know if that’s really a problem. I just don’t know this space well enough. I suppose some Python packages map to one or more of those, and some might be dead? It’s just a matter of knowing which one or few to use? Can we help each other by setting up a mapping at [Introducing Julia - Wikibooks, open books for an open world](https://en.wikibooks.org/wiki/Introducing_Julia) for some “must-have” Python/R/etc. packages at some subpage there? Maybe there or add subpage:

[https://en.wikibooks.org/wiki/Introducing\_Julia/Migrating\_From\_Other\_Languages](https://en.wikibooks.org/wiki/Introducing_Julia/Migrating_From_Other_Languages)
