numexpr
RCall.jl
numexpr | RCall.jl | |
---|---|---|
4 | 8 | |
2,143 | 311 | |
0.7% | 0.6% | |
8.2 | 6.1 | |
about 1 month ago | 1 day ago | |
Python | Julia | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
numexpr
-
Making Python 100x faster with less than 100 lines of Rust
You can just slap numexpr on top of it to compile this line on the fly.
https://github.com/pydata/numexpr
- Extending Python with Rust
-
[D] How to avoid CPU bottlenecking in PyTorch - training slowed by augmentations and data loading?
Are you doing any costly chained NumPy operations in your preprocessing? E.g. max(abs(large_ary)), this produces multiple copies of your data, https://github.com/pydata/numexpr can greatly reduce time spent with such operations
-
Selection in pandas using query
What is not entirely obvious here is that under the hood you can install a nice library called numexpr (docs, src) that exists to make calculations with large NumPy (and pandas) objects potentially much faster. When you use query or eval, this expression is passed into numexpr and optimized using its bag of tricks. Expected performance improvement can be between .95x and up to 20x, with average performance around 3-4x for typical use cases. You can read details in the docs, but essentially numexpr takes vectorized operations and makes them work in chunks that optimize for cache and CPU branch prediction. If your arrays are really large, your cache will not be hit as often. If you break your large arrays into very small pieces, your CPU won’t be as efficient.
RCall.jl
-
Makie, a modern and fast plotting library for Julia
I don't use it personally, but RCall.jl[1] is the main R interop package in Julia. You could call libraries that have no equivalent in Julia using that and write your own analyses in Julia instead.
[1] https://github.com/JuliaInterop/RCall.jl
-
Making Python 100x faster with less than 100 lines of Rust
You can have your cake and eat it with the likes of
* PythonCall.jl - https://github.com/cjdoris/PythonCall.jl
* NodeCall.jl - https://github.com/sunoru/NodeCall.j
* RCall.jl - https://github.com/JuliaInterop/RCall.jl
I tend to use Julia for most things and then just dip into another language’s ecosystem if I can’t find something to do the job and it’s too complex to build myself
-
Interoperability in Julia
To inter-operate Julia with the R language, the RCall package is used. Run the following commands on the Julia REPL
-
Convert Random Forest from Julia to R
https://github.com/JuliaInterop/RCall.jl may help
-
I'm considering Rust, Go, or Julia for my next language and I'd like to hear your thoughts on these
If you need to bindings to your existing R packages then Julia is the way. Check out RCall.jl
-
translate R code to Julia code
I have no experience with R, but maybe this will be of use: https://github.com/JuliaInterop/RCall.jl
-
Julia 1.6: what has changed since Julia 1.0?
You can use RCall to use R from Julia: https://github.com/JuliaInterop/RCall.jl
-
Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?
I worked with R and Python during the last 3 years but learning and dabbling with Julia since 0.6. Since the availability of [PyCall.jl] and [RCall.jl], the transition to Julia can already be easier for Python/R users.
I agree that most of the time data wrangling is super confortable in R due to the syntax flexibility exploited by the big packages (tidyverse/data.table/etc). At the same time, Julia and R share a bigger heritage from Lisp influence that with Python, because R is also a Lisp-ish language (see [Advanced R, Metaprogramming]). My main grip from the R ecosystem is not that most of the perfomance sensitive packages are written in C/C++/Fortran but are written so deeply interconnect with the R environment that porting them to Julia that provide also an easy and good interface to C/C++/Fortran (and more see [Julia Interop] repo) seems impossible for some of them.
I also think that Julia reach to broader scientific programming public than R, where it overlaps with Python sometimes but provides the Matlab/Octave public with an better alternative. I don't expected to see all the habits from those communities merge into Julia ecosystem. On the other side, I think that Julia bigger reach will avoid to fall into the "base" vs "tidyverse" vs "something else in-between" that R is now.
[PyCall.jl]: https://github.com/JuliaPy/PyCall.jl
[RCall.jl]: https://github.com/JuliaInterop/RCall.jl
[Julia Interop]: https://github.com/JuliaInterop
[Advanced R, Metaprogramming] by Hadley Wickham: https://adv-r.hadley.nz/metaprogramming.html
What are some alternatives?
pytorch-lightning - Build high-performance AI models with PyTorch Lightning (organized PyTorch). Deploy models with Lightning Apps (organized Python to build end-to-end ML systems). [Moved to: https://github.com/Lightning-AI/lightning]
Makie.jl - Interactive data visualizations and plotting in Julia
pygfx - A python render engine running on wgpu.
org-mode - This is a MIRROR only, do not send PR.
greptimedb - An open-source, cloud-native, distributed time-series database with PromQL/SQL/Python supported. Available on GreptimeCloud.
Chain.jl - A Julia package for piping a value through a series of transformation expressions using a more convenient syntax than Julia's native piping functionality.
jnumpy - Writing Python C extensions in Julia within 5 minutes.
Revise.jl - Automatically update function definitions in a running Julia session
jsmpeg - MPEG1 Video Decoder in JavaScript
cmssw - CMS Offline Software
poly-match - Source for the "Making Python 100x faster with less than 100 lines of Rust" blog post
PyCall.jl - Package to call Python functions from the Julia language