Skip to content

Releases: elixir-explorer/explorer

v0.5.1

17 Feb 19:34
4ed3066
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1
Official Changelog: https://hexdocs.pm/explorer/changelog.html#v0-5-1-2023-02-17

Checksums

Below you can find the checksum (SHA256) of each precompiled artifact.

c60a6b4188ec55748cf04b08c930813c1f333f026b677ba399f9cc4cc382c9c7  explorer-v0.5.1-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
9ca3ceda6b17dc8b8504d12f4c3ae5524821c6563dd719a10c3b0a7c40c8917c  explorer-v0.5.1-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
3b1700ee5905db2f7d11839cf1ca76945617b82463733c596a8c807569d0a2dc  explorer-v0.5.1-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
43c69c524560cf1383fe0355a79e586fb8e1b99918fa195ffcd0c42bd432b0a6  explorer-v0.5.1-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
0021eb30bf13288bfd1fe7c30b8ac2f634c6db5f7aeccdea5b2ea9be7146eaec  libexplorer-v0.5.1-nif-2.15-aarch64-apple-darwin.so.tar.gz
247459bb0f3962bdbd2ffa56638e471cc5800ed59fe496e1917635a87dac23d6  libexplorer-v0.5.1-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
e821490e99e076b9a2ff8f44dab39fd60e8170d82c90ddbe065df6ac611f638e  libexplorer-v0.5.1-nif-2.15-aarch64-unknown-linux-musl.so.tar.gz
aaa71b580643e46b6c04b348f2c96c5dfb326f1d9354f2d605acf2a2241d4259  libexplorer-v0.5.1-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
14471b81819701927bcdfde635c1a345c29dd0e9b5ef8a27b22aac0b133326a9  libexplorer-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz
2461d1608c84791721dbfae199440965e75e2c8954ee36a7b19f637a7f6bc0a3  libexplorer-v0.5.1-nif-2.15-x86_64-apple-darwin.so.tar.gz
d2bd055a08c9e8df7a7737af3b22d6a2b75a4d7e29f5984083a4931555653758  libexplorer-v0.5.1-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
e43fae0950f7f5fee5d4dd7dffb69abb3c971f0bd2a2d5eceed686113615b8fc  libexplorer-v0.5.1-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
bb6dcd1483b95215379e38c0f7427f122229454ea95ca2ab19ec6cf5335c590d  libexplorer-v0.5.1-nif-2.16-aarch64-apple-darwin.so.tar.gz
0d5082f8955f51b912c25b6581afc80cebc0f5c4251480b239c2a3ee89ac537f  libexplorer-v0.5.1-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
69dd4f631bb5ff7ae32ca80d572a368fdbacce94be3792348c145bcd1276fb9d  libexplorer-v0.5.1-nif-2.16-aarch64-unknown-linux-musl.so.tar.gz
8aa8f85f1e1e9bf5aa51910e7e809a384732d0e783a081b4db8d2b3503890e16  libexplorer-v0.5.1-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
d1f580b23fc6b6ea955204713f2193715165caf7dd04ac9a27e01ec29ce0d303  libexplorer-v0.5.1-nif-2.16-riscv64gc-unknown-linux-gnu.so.tar.gz
0a599d6f927b8e3332f1bcae38cc278c6eda1ec256e8d7e8d76c7d66e8e2337e  libexplorer-v0.5.1-nif-2.16-x86_64-apple-darwin.so.tar.gz
9fbe61d2c63e85ccb3a2a1802bf750ded1a9eb01360cab9fab745d382f8bcf5f  libexplorer-v0.5.1-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
ebcfb66d56535b29d596c51451f1d89d34ebba1f8f70dbebe60887643afec8e3  libexplorer-v0.5.1-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz

v0.5.0

12 Jan 21:51
df256a0
Compare
Choose a tag to compare

Added

  • Add DataFrame.describe/2 to gather some statistics from a dataframe.

  • Add Series.nil_count/1 to count nil values.

  • Add Series.in/2 to check if a given value is inside a series.

  • Add Series float predicates: is_finite/1, is_infinite/1 and is_nan/1.

  • Add Series string functions: contains/2, trim/1, trim_leading/1, trim_trailing/1,
    upcase/1 and downcase/1.

  • Enable slicing of lazy frames (LazyFrame).

  • Add IO operations "from/load" to the lazy frame implementation.

  • Add support for the :lazy option in the DataFrame.new/2 function.

  • Add Series float rounding methods: round/2, floor/1 and ceil/1.

  • Add support for precompiling to Linux running on RISCV CPUs.

  • Add support for precompiling to Linux - with musl - running on AARCH64 computers.

  • Allow DataFrame.new/1 to receive the :dtypes option.

  • Accept :nan as an option for Series.fill_missing/2 with float series.

  • Add basic support for the categorical dtype - the :category dtype.

  • Add Series.categories/1 to return categories from a categorical series.

  • Add Series.categorise/2 to categorise a series of integers using predefined categories.

  • Add Series.replace/2 to replace the contents of a series.

  • Support selecting columns with unusual names (like with spaces) inside Explorer.Query
    with col/1.

    The usage is like this:

    Explorer.DataFrame.filter(df, col("my col") > 42)

Fixed

  • Fix DataFrame.mutate/2 using a boolean scalar value.
  • Stop leaking UInt32 series to Elixir.
  • Cast numeric columns to our supported dtypes after IO read.
    This fix is only applied for the eager implementation for now.

Changed

  • Rename Series.bintype/1 to Series.iotype/1.

Pull requests made for this release

New Contributors

The official Changelog: https://github.com/elixir-nx/explorer/blob/main/CHANGELOG.md#v050---2023-01-12
Full diff of this version: v0.4.0...v0.5.0

Checksums

Below are the checksums of the precompiled files.

53ae33bcf9f56416706bcd20e1b995c86e03ff4e3332668121ededfc7571f1fb  explorer-v0.5.0-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
af21cbd83a4f4c6a66f3f575803947f8c4c030800d2e50640c306efec8ba3276  explorer-v0.5.0-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
88a045e498d8bc92e72a67a212609cdf9c19e30f508632dcf1c1aaa11654eb49  explorer-v0.5.0-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
340fc42a6f82783e6691fe2d65df71634453c9b0c18df603e4e0bff3d1509bbe  explorer-v0.5.0-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
2b3036a5911381090df6ff9ee850a8fb7bad67a0f45ffe534b40f83a24b54fb6  libexplorer-v0.5.0-nif-2.15-aarch64-apple-darwin.so.tar.gz
0c2505a8162fab9f966d319c577778aa8243c9c2c4aafd6139b5fb05dfa040b7  libexplorer-v0.5.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
707b1b8417463ef21fca8e68047c0fcca14188bdc2841222ce4de57d0d10a0b9  libexplorer-v0.5.0-nif-2.15-aarch64-unknown-linux-musl.so.tar.gz
40cd4a3450755723fdec39c2c2a974de5e3003e67b612e30a524611da3b4b6a0  libexplorer-v0.5.0-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
5e176c2b7bbbbef9f7baf07a507cf72638b60f36629543e3c8ba169a90bfc484  libexplorer-v0.5.0-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz
81d542d98c78dcc49a09ef56457b143e345c24a4a04ce9c718a026f6754a27aa  libexplorer-v0.5.0-nif-2.15-x86_64-apple-darwin.so.tar.gz
1923583ef16fd2c7575b1149d76fa88a95ad8a2395a6aabd6b8aa04f0f81507b  libexplorer-v0.5.0-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
43fd64d5c41e3255da0aec2b5516be3739574b582cc8794e0aeb73b9a3d80cc6  libexplorer-v0.5.0-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
c966b3db56b9484af6e4d8ab53da720d7022c37246e6363d7042d6629a37074d  libexplorer-v0.5.0-nif-2.16-aarch64-apple-darwin.so.tar.gz
c198f27bb94c0e50fd7012283538756d25025d8e52560931a8d198a551b5c594  libexplorer-v0.5.0-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
8a0fcff821590a872480b634421b2fab9673a6649a2943b47c7f4bc83111e683  libexplorer-v0.5.0-nif-2.16-aarch64-unknown-linux-musl.so.tar.gz
f23a0df9e39b7e26d5f84035019ee81e3f43e8556707937e14bfc12fcfa841e5  libexplorer-v0.5.0-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
4b36fc0b4d0b83fd8784b71f45ddb720d5319b3b1d0548481f09541dca4b2bc3  libexplorer-v0.5.0-nif-2.16-riscv64gc-unknown-linux-gnu.so.tar.gz
af5220707b55c73e5eecf9839173822dc6d3215e3cc09e92782363771a42e59e  libexplorer-v0.5.0-nif-2.16-x86_64-apple-darwin.so.tar.gz
197eaea18bd4e05e2cb86ceee607119ffccb671816b28d5fc060e568303a0b7e  libexplorer-v0.5.0-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
10d244fa00c6abe000936a8649e87c6e71690e33267407bf5d945084c027ba0e  libexplorer-v0.5.0-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz

v0.4.0

29 Nov 21:15
d051764
Compare
Choose a tag to compare

This is an exciting release with a lot of features, a bunch of changes and some fixes.
Happy Hacking!

Added

  • Add Series.quotient/2 and Series.remainder/2 to work with integer division.

  • Add Series.bintype/1 to return the underlying representation type.

  • Allow series on both sides of binary operations, like: add(series, 1)
    and add(1, series).

  • Allow comparison, concat and coalesce operations on "(series, lazy series)".

  • Add lazy version of Series.sample/3 and Series.size/1.

  • Add support for Arrow IPC Stream files.

  • Add Explorer.Query and the macros that allow a simplified query API.
    This is a huge improvement to some of the main functions, and allow refering to
    columns as they were variables.

    Before this change we would need to write a filter like this:

    Explorer.DataFrame.filter_with(df, &Explorer.Series.greater(&1["col1"], 42))

    But now it's also possible to write this operation like this:

    Explorer.DataFrame.filter(df, col1 > 42)

    This operation is going to use filter_with/2 underneath, which means that
    is going to use lazy series and compute the results at once.
    Notice that is mandatory to "require" the DataFrame module, since these operations
    are implemented as macros.

    The following new macros were added:

    • filter/2
    • mutate/2
    • summarise/2
    • arrange/2

    They substitute older versions that did not accept the new query syntax.

  • Add DataFrame.put/3 to enable adding or replacing columns in a eager manner.
    This works similar to the previous version of mutate/2.

  • Add Series.select/3 operation that enables selecting a value
    from two series based on a predicate.

  • Add "dump" and "load" functions to IO operations. They are useful to load
    or dump dataframes from/to memory.

  • Add Series.to_iovec/2 and Series.to_binary/1. They return the underlying
    representation of series as binary. The first one returns a list of binaries,
    possibly with one element if the series is contiguous in memory. The second one
    returns a single binary representing the series.

  • Add Series.shift/2 that shifts the series by an offset with nil values.

  • Rename Series.fetch!/2 and Series.take_every/2 to Series.at/2
    and Series.at_every/2.

  • Add DataFrame.discard/2 to drop columns. This is the opposite of select/2.

  • Implement Nx.LazyContainer for Explorer.DataFrame and Explorer.Series
    so data can be passed into Nx.

  • Add Series.not/1 that negates values in a boolean series.

  • Add the :binary dtype for Series. This enables the usage of arbitrary binaries.

Changed

  • Change DataFrame's to_* functions to return only :ok.
  • Change series inspect to resamble the dataframe inspect with the backend name.
  • Rename Series.var/1 to Series.variance/1
  • Rename Series.std/1 to Series.standard_deviation/1
  • Rename Series.count/2 to Series.frequencies/1 and add a new Series.count/1
    that returns the size of an "eager" series, or the count of members in a group
    for a lazy series.
    In case there is no groups, it calculates the size of the dataframe.
  • Change the option to control direction in Series.sort/2 and Series.argsort/2.
    Instead of a boolean, now we have a new option called :direction that accepts
    :asc or :desc.

Fixed

  • Fix the following DataFrame functions to work with groups:
    • filter_with/2
    • head/2
    • tail/2
    • slice/2
    • slice/3
    • pivot_longer/3
    • pivot_wider/4
    • concat_rows/1
    • concat_columns/1
  • Improve the documentation of functions that behave differently with groups.
  • Fix arrange_with/2 to use "group by" stable, making results more predictable.
  • Add nil as a possible return value of aggregations.
  • Fix the behaviour of Series.sort/2 and Series.argsort/2 to add nils at the
    front when direction is descending, or at the back when the direction is ascending.
    This also adds an option to control this behaviour.

Removed

  • Remove support for NDJSON read and write for ARM 32 bits targets.
    This is due to a limitation of a dependency of Polars.

New Contributors

We also had @joshuataylor and @Benjamin-Philip contributing to this release.

Full Changelog: v0.3.1...v0.4.0
Official Changelog: https://hexdocs.pm/explorer/changelog.html

Checksums

Above is the checksum of the precompiled NIFs.

5c806f61d76e161b03372d7607704a98a50e0a0687c2d763041edcc265a7e1ed  explorer-v0.4.0-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
017304769d8ad46cdfa44520ceba6431b7f5c8934c8dd62613317126bfaf4447  explorer-v0.4.0-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
97680f8a446c2de04add8a66d63db44085d4b7008fb135fc8a3c62df3bdb6857  explorer-v0.4.0-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
b4339bad6faabad736a698fc989cf0f24640ea98f46d4ec3a79330b7ef273673  explorer-v0.4.0-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
01678187108b7dc472748e9163bfbad15f74aeca5da96c285ad22ce1f4398994  libexplorer-v0.4.0-nif-2.15-aarch64-apple-darwin.so.tar.gz
22b5d6ac3a0123f0b3d4c84129d2730c583d59dfa846b77524d13ee34baceb96  libexplorer-v0.4.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
21d9c5c81a86aa23d6d0e630307bf86732e0e7f31b35d2aad093248ec747ba65  libexplorer-v0.4.0-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
aed562d906f16cecca3fc12e77a8a03825f0aa52ef3421a8db0df9f258fd7e29  libexplorer-v0.4.0-nif-2.15-x86_64-apple-darwin.so.tar.gz
60f66e0a3ec24b323b7996b5c30d0b9fbb714674fa0fa2dcbe48b1b7af9e85f4  libexplorer-v0.4.0-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
24387916a67f93d2a4dd2e2b595451ad3ed052dddf91956bd9dc9ec1a39cb32c  libexplorer-v0.4.0-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
3fabdc92ba66c33f0a6b220a06dccfa3738d231d90e1824c47c0a4a838d2bee8  libexplorer-v0.4.0-nif-2.16-aarch64-apple-darwin.so.tar.gz
9213e107fb29a416c9db40040b4b657199bd5e9e95990e1b6fcf6e090a006810  libexplorer-v0.4.0-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
025fb32c9b337d3bcc50be321c9a26bc6ea7ecbef0813df7729a53e6826c0fe3  libexplorer-v0.4.0-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
7ad59e6e041267a78d0671ef11b60e8edca66ae2cd58e052731ab38f3c1af8d2  libexplorer-v0.4.0-nif-2.16-x86_64-apple-darwin.so.tar.gz
0bdddb296b7be4957fe40cdcbfc1fa92802fab1fed0d6fd40122acbcc90f6b61  libexplorer-v0.4.0-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
de8dd8313d7fff2fbd8d70bb26f163b60af9ac41bc26f799ca94aae78570d45f  libexplorer-v0.4.0-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz

v0.3.1

09 Sep 07:09
c44d083
Compare
Choose a tag to compare

Fixed

  • Define multiply inside *_with operations.
  • Fix column types in several operations, such as n_distinct.

v0.3.0

01 Sep 15:40
4846955
Compare
Choose a tag to compare

Added

  • Add DataFrame.concat_columns/1 and DataFrame.concat_columns/2 for horizontally stacking
    dataframes.

  • Add compression as an option to write parquet files.

  • Add count metadata to DataFrame table reader.

  • Add DataFrame.filter_with/2, DataFrame.summarise_with/2, DataFrame.mutate_with/2 and
    DataFrame.arrange_with/2. They all accept a DataFrame and a function, and they all work with
    a new concept called "lazy series".

    Lazy Series is an opaque representation of a series that can be
    used to perform complex operations without pulling data from the series. This is faster than
    using masks. There is no big difference from the API perspective compared to the functions that were
    accepting callbacks before (eg. filter/2 and the new filter_with/2), with the exception being
    DataFrame.summarise_with/2 that now accepts a lot more operations.

Changed

  • Bump version requirement of the table dependency to ~> 0.1.2, and raise for non-tabular values.
  • Normalize how columns are handled. This changes some functions to accept one column or
    a list of columns, ranges, indexes and callbacks selecting columns.
  • Rename DataFrame.filter/2 to DataFrame.mask/2.
  • Rename Series.filter/2 to Series.mask/2.
  • Rename take/2 from both Series and DataFrame to slice/2. slice/2 now they accept ranges as well.
  • Raise an error if DataFrame.pivot_wider/4 has float columns as IDs. This is because we can´t
    properly compare floats.
  • Change DataFrame.distinct/2 to accept columns as argument instead of receiving it as option.

Fixed

  • Ensure that we can compare boolean series in functions like Series.equal/2.
  • Fix rename of columns after summarise.
  • Fix inspect of float series containing NaN or Infinity values. They are represented as atoms.

Deprecated

  • Deprecate DataFrame.filter/2 with a callback in favor of DataFrame.filter_with/2.

v0.2.0

22 Jun 08:18
b28f321
Compare
Choose a tag to compare

Added

  • Consistently support ranges throughout the columns API
  • Support negative indexes throughout the columns API
  • Integrate with the table package
  • Add Series.to_enum/1 for lazily traversing the series
  • Add Series.coalesce/1 and Series.coalesce/2 for finding the first non-null value in a list of series

Changed

  • Series.length/1 is now Series.size/1 in keeping with Elixir idioms
  • Nx is now an optional dependency
  • Minimum Elixir version is now 1.13
  • DataFrame.to_map/2 is now DataFrame.to_columns/2 and DataFrame.to_series/2
  • Rustler is now an optional dependency
  • read_ and write_ IO functions are now from_ and to_
  • to_binary is now dump_csv
  • Now uses polars's "simd" feature
  • Now uses polars's "performant" feature
  • Explorer.default_backend/0 is now Explorer.Backend.get/0
  • Explorer.default_backend/1 is now Explorer.Backend.put/1
  • Series.cum_* functions are now Series.cumulative_* to mirror Nx
  • Series.rolling_* functions are now Series.window_* to mirror Nx
  • reverse? is now an option instead of an argument in Series.cumulative_* functions
  • DataFrame.from_columns/2 and DataFrame.from_rows/2 is now DataFrame.new/2
  • Rename "col" to "column" throughout the API
  • Remove "with_" prefix in options throughout the API
  • DataFrame.table/2 accepts options with :limit instead of single integer
  • rename/2 no longer accepts a function, use rename_with/2 instead
  • rename_with/3 now expects the function as the last argument

Fixed

  • Explorer now works on Linux with musl

v0.1.1

27 Apr 07:14
723eea6
Compare
Choose a tag to compare

This is a security release to address Dependabot security alerts: 1, 2, 3.

v0.1.0

26 Apr 09:29
5f39c2d
Compare
Choose a tag to compare

Initial release.