Skip to content

Instantly share code, notes, and snippets.

View cnuernber's full-sized avatar

Chris Nuernberger cnuernber

View GitHub Profile
user> (require '[streams.api :as streams])
nil
user> (require '[tech.v3.datatype :as dt])
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
nil
user> (require '[criterium.core :as crit])
nil
user> (require '[tech.v3.dataset :as ds])
nil
user> (require '[tech.v3.datatype :as dt])
nil
user> (def stocks (ds/->dataset "test/data/stocks.csv"))
#'user/stocks
user> (ds/head stocks)
test/data/stocks.csv [5 3]:
| symbol | date | price |
({:name "json10b.json",
:length 10,
:results
({:mean 2.8395358873882303E-4,
:variance 9.229848696228037E-13,
:engine :jsonista}
{:mean 2.9764745729223663E-4, :variance 2.191678699576698E-15, :engine :dtype}
{:mean 2.9862196321958634E-4,
:variance 5.7147051441501036E-15,
:engine :dtype-raw}
@cnuernber
cnuernber / numpy-byte-array-zc.clj
Created April 11, 2021 22:39
Create a Java ByteBuffer from a numpy array via zerocopy pathways
```clojure
user> (require '[libpython-clj2.python :as py])
nil
user> ;;Enable zero copy access to numpy objects
user> (require '[libpython-clj2.python.np-array])
nil
user> (require '[tech.v3.datatype :as dtype]
               '[tech.v3.datatype.native-buffer :as native-buffer]
               '[tech.v3.datatype.nio-buffer :as nio-buffer])
nil

Pure parse time of 94MB file (ignoring mmaping the file)

tech.libs.arrow.message>   (mapv parse-message messages)
[{:fields
  [{:name "symbol",
    :nullable? true,
    :field-type {:datatype :string, :encoding :utf-8},
    :metadata
    {":name" "\"symbol\"", ":size" "5600000", ":datatype" ":string", ":categorical?" "true"},
symbol date price
MSFT 2000-01-01 39.81000000
MSFT 2000-02-01 36.35000000
MSFT 2000-03-01 43.22000000
MSFT 2000-04-01 28.37000000
MSFT 2000-05-01 25.45000000
MSFT 2000-06-01 32.54000000
MSFT 2000-07-01 28.40000000
MSFT 2000-08-01 28.40000000
user> (require '[tech.io :as io])
nil
user> (require '[tech.ml.dataset :as ds])
nil
user> (require '[clj-memory-meter.core :as mm])
nil
user> (def double-mapseq
(vec (repeatedly 1000
#(->> (range 100)
(map (fn [idx]

Markdown Inline Format

tech.ml.dataset.print> (println (dataset->str test-ds {:line-policy :markdown}))
| :a |                                                                 :b |
|----|--------------------------------------------------------------------|
|  1 | #tech.v2.tensor<float64>[2 2]<br>[[0.000 1.000]<br> [2.000 3.000]] |
|  2 | #tech.v2.tensor<float64>[2 2]<br>[[0.000 1.000]<br> [2.000 3.000]] |

| :a | :b |

(ns vegafx.core
(:import [javafx.application Platform]
[javafx.beans.value ChangeListener]
[javafx.concurrent Worker$State]
[javafx.embed.swing JFXPanel]
[javafx.scene Scene]
[javafx.scene.web WebView]
[javafx.stage Stage]
[javafx.embed.swing SwingFXUtils]
[javax.imageio ImageIO])
@cnuernber
cnuernber / mesonet.clj
Last active July 17, 2019 18:48
Expanded mesonet table
weather-databot.madis> (rich-table "mesonet.gz")
11:46:35.521 [nRepl-session-3bc5bf7a-6ea2-49b6-b862-df91fefe056b] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.netcdf3.N3raf
| :name | :units | :datatype | :shape | :valid-ecount | :example-values |
|-------------------------+-------------+-----------+--------------+---------------+---------------------------------------|
| ICT | | :char | [55 72] | 3960 | [49 45 32] |
| QCT | | :char | [10 60] | 600 | [49 45 32] |
| altimeter | pascal | :float | [138878] | 82131 | ["1.02e+05" "1.02e+05" "1.02e+05"] |
| altimeterDD | | :char | [138878] | 138878 | [86 81 83] |