aiuna scientific data for the classroom
WARNING: This project is still subject to major changes, e.g., in the next rewrite.
Installation
Examples
Creating data from ARFF file
from aiuna import *
d = file("iris.arff").data
print(d.Xd)
"""
['sepallength', 'sepalwidth', 'petallength', 'petalwidth']
"""
print(d.X[:5])
"""
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]]
"""
print(d.y[:5])
"""
['Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa']
"""
from pandas import DataFrame
print(DataFrame(d.y).value_counts())
"""
Iris-setosa 50
Iris-versicolor 50
Iris-virginica 50
dtype: int64
"""
cessing a data field as a pandas DataFrame
#from aiuna import *
#d = dataset.data # 'iris' is the default dataset
#df = d.X_pd
#print(df.head())
#...
#mycol = d.X_pd["petal length (cm)"]
#print(mycol[:5])
#...
Creating data from numpy arrays
from aiuna import *
import numpy as np
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
y = np.array([0, 1, 1])
d = new(X=X, y=y)
print(d)
"""
{
"uuid": "06NLDM4mLEMrHPOaJvEBqdo",
"uuids": {
"changed": "3Sc2JjUPMlnNtlq3qdx9Afy",
"X": "13zbQMwRwU3WB8IjMGaXbtf",
"Y": "1IkmDz3ATFmgzeYnzygvwDu"
},
"step": {
"id": "06NLDM4mLEMrHPOT2pd5lzo",
"desc": {
"name": "New",
"path": "aiuna.step.new",
"config": {
"hashes": {
"X": "586962852295d584ec08e7214393f8b2",
"Y": "f043eb8b1ab0a9618ad1dc53a00d759e"
}
}
}
},
"changed": [
"X",
"Y"
],
"X": [
"[[1 2 3]",
" [4 5 6]",
" [7 8 9]]"
],
"Y": [
"[[0]",
" [1]",
" [1]]"
]
}
"""
Checking history
from aiuna import *
d = dataset.data # 'iris' is the default dataset
print(d.history)
"""
{
"02o8BsNH0fhOYFF6JqxwaLF": {
"name": "New",
"path": "aiuna.step.new",
"config": {
"hashes": {
"X": "19b2d27779bc2d2444c11f5cc24c98ee",
"Y": "8baa54c6c205d73f99bc1215b7d46c9c",
"Xd": "0af9062dccbecaa0524ac71978aa79d3",
"Yd": "04ceed329f7c3eb43f93efd981fde313",
"Xt": "60d4f429fcd642bbaf1d976002479ea2",
"Yt": "4660adc31e2c25d02cb751dcb96ecfd3"
}
}
}
}
"""
del d["X"]
print(d.history)
"""
{
"02o8BsNH0fhOYFF6JqxwaLF": {
"name": "New",
"path": "aiuna.step.new",
"config": {
"hashes": {
"X": "19b2d27779bc2d2444c11f5cc24c98ee",
"Y": "8baa54c6c205d73f99bc1215b7d46c9c",
"Xd": "0af9062dccbecaa0524ac71978aa79d3",
"Yd": "04ceed329f7c3eb43f93efd981fde313",
"Xt": "60d4f429fcd642bbaf1d976002479ea2",
"Yt": "4660adc31e2c25d02cb751dcb96ecfd3"
}
}
},
"06fV1rbQVC1WfPelDNTxEPI": {
"name": "Del",
"path": "aiuna.step.delete",
"config": {
"field": "X"
}
}
}
"""
d["Z"] = 42
print(d.Z, type(d.Z))
"""
[[42]] <class 'numpy.ndarray'>
"""
print(d.history)
"""
{
"02o8BsNH0fhOYFF6JqxwaLF": {
"name": "New",
"path": "aiuna.step.new",
"config": {
"hashes": {
"X": "19b2d27779bc2d2444c11f5cc24c98ee",
"Y": "8baa54c6c205d73f99bc1215b7d46c9c",
"Xd": "0af9062dccbecaa0524ac71978aa79d3",
"Yd": "04ceed329f7c3eb43f93efd981fde313",
"Xt": "60d4f429fcd642bbaf1d976002479ea2",
"Yt": "4660adc31e2c25d02cb751dcb96ecfd3"
}
}
},
"06fV1rbQVC1WfPelDNTxEPI": {
"name": "Del",
"path": "aiuna.step.delete",
"config": {
"field": "X"
}
},
"05eIWbfCJS7vWJsXBXjoUAh": {
"name": "Let",
"path": "aiuna.step.let",
"config": {
"field": "Z",
"value": 42
}
}
}
"""
Grants
Part of the effort spent in the present code was kindly supported by Fapesp under supervision of Prof. André C. P. L. F. de Carvalho at CEPID-CeMEAI (Grants 2013/07375-0 – 2019/01735-0).
History
The novel ideias presented here are a result of a years-long process of drafts, thinking, trial/error and rewrittings from scratch in several languages from Delphi, passing through Haskell, Java and Scala to Python - including frustration with well stablished libraries at the time. The fundamental concepts were lightly borrowed from basic category theory concepts like algebraic data structures that permeate many recent tendencies, e.g., in programming language design.
For more details, refer to https://github.com/davips/kururu
Metadata
Release files for aiuna 0.2103.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aiuna-0.2103.15.tar.gz | 89.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiuna-0.2103.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 193.8 kB
Release files / aiuna-0.2103.15.tar.gz
| Download URL | aiuna-0.2103.15.tar.gz |
|---|---|
| Size | 89.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e685b88364f19ea1fa4b9fe49c1ca356fb6ab10a95e4031fabd4b4cfdf6aec75
|
|
BLAKE2b-256 checksum How to use checksums |
34b3f86804e4b15e1917720ebab6ea60d1e23cde748875630774c43c62f3d26a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
|
Release files / aiuna-0.2103.15-py3-none-any.whl
| Download URL | aiuna-0.2103.15-py3-none-any.whl |
|---|---|
| Size | 104.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e5a3523c1cf7edcc0349400f511ecb3bbf0ea7ef6a36ae39474c2af240e0d07c
|
|
BLAKE2b-256 checksum How to use checksums |
5042a7b4dac4df1d3f3b1836dd0e14263dcd9929c7424f3bd570ae895aa5d220
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
|
Security for aiuna 0.2103.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.