complexeva 0.1.8__tar.gz → 0.1.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {complexeva-0.1.8 → complexeva-0.1.9}/PKG-INFO +1 -1
- complexeva-0.1.9/complexeva/measures/__init__.py +5 -0
- complexeva-0.1.9/complexeva/measures/dimension_1/__init__.py +14 -0
- complexeva-0.1.9/complexeva/measures/dimension_1/compression_complexity.py +25 -0
- complexeva-0.1.9/complexeva/measures/dimension_1/kolmogorov_complexity.py +24 -0
- complexeva-0.1.9/complexeva/measures/dimension_1/lyapunov_exponent.py +44 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva.egg-info/PKG-INFO +1 -1
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva.egg-info/SOURCES.txt +3 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/setup.py +1 -1
- complexeva-0.1.8/complexeva/measures/__init__.py +0 -6
- complexeva-0.1.8/complexeva/signal/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/README.md +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/dummies/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/dummies/matrix.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/dummies/networks.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/measures/dimension_1/higuchi.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/measures/dimension_1/lempel_ziv.py +0 -0
- {complexeva-0.1.8/complexeva/measures/dimension_1 → complexeva-0.1.9/complexeva/measures/dimension_2}/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/measures/dimension_2/cbb_matrix.py +0 -0
- {complexeva-0.1.8/complexeva/measures/dimension_2 → complexeva-0.1.9/complexeva/measures/network_space}/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/measures/network_space/cbb_networkx.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/measures/validate.py +0 -0
- {complexeva-0.1.8/complexeva/measures/network_space → complexeva-0.1.9/complexeva/signal}/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/signal/co_activation.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/utils/__init__.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/utils/convert_image_matrix.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/utils/convert_matrix_network.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva/utils/device.py +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva.egg-info/dependency_links.txt +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/complexeva.egg-info/top_level.txt +0 -0
- {complexeva-0.1.8 → complexeva-0.1.9}/setup.cfg +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from .compression_complexity import compression_complexity
|
|
2
|
+
from .lyapunov_exponent import lyapunov_exponent
|
|
3
|
+
from .kolmogorov_complexity import kolmogorov_complexity
|
|
4
|
+
from .higuchi import hfd_matlab_equivalent, hfd_pyeeg
|
|
5
|
+
from .lempel_ziv import lempel_ziv
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"compression_complexity",
|
|
9
|
+
"lyapunov_exponent",
|
|
10
|
+
"kolmogorov_complexity",
|
|
11
|
+
"hfd_matlab_equivalent",
|
|
12
|
+
"hfd_pyeeg",
|
|
13
|
+
"lempel_ziv",
|
|
14
|
+
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import zlib
|
|
2
|
+
import numpy as np
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def compression_complexity(data):
|
|
6
|
+
"""
|
|
7
|
+
Calculate compression complexity using zlib compression.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
data: numpy array or list of numerical values
|
|
11
|
+
|
|
12
|
+
Returns:
|
|
13
|
+
float: compression complexity score
|
|
14
|
+
"""
|
|
15
|
+
# Convert numerical data to bytes
|
|
16
|
+
if isinstance(data, np.ndarray):
|
|
17
|
+
data = data.tobytes()
|
|
18
|
+
elif isinstance(data, list):
|
|
19
|
+
data = np.array(data).tobytes()
|
|
20
|
+
else:
|
|
21
|
+
raise ValueError("Input must be a numpy array or list")
|
|
22
|
+
|
|
23
|
+
# Calculate compression ratio
|
|
24
|
+
compressed = zlib.compress(data)
|
|
25
|
+
return len(compressed) / len(data) # Normalized complexity score
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import zlib
|
|
2
|
+
import numpy as np
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def kolmogorov_complexity(data):
|
|
6
|
+
"""
|
|
7
|
+
Calculate an approximation of Kolmogorov complexity using zlib compression.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
data: numpy array or list of numerical values
|
|
11
|
+
|
|
12
|
+
Returns:
|
|
13
|
+
int: approximated Kolmogorov complexity (compressed length)
|
|
14
|
+
"""
|
|
15
|
+
# Convert numerical data to bytes
|
|
16
|
+
if isinstance(data, np.ndarray):
|
|
17
|
+
data = data.tobytes()
|
|
18
|
+
elif isinstance(data, list):
|
|
19
|
+
data = np.array(data).tobytes()
|
|
20
|
+
else:
|
|
21
|
+
raise ValueError("Input must be a numpy array or list")
|
|
22
|
+
|
|
23
|
+
# Calculate compressed length as approximation of Kolmogorov complexity
|
|
24
|
+
return len(zlib.compress(data))
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
from scipy.spatial.distance import pdist, squareform
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def lyapunov_exponent(data, tau=1, m=2, dt=1):
|
|
6
|
+
"""
|
|
7
|
+
Calculate the largest Lyapunov exponent for a time series.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
data: numpy array or list of numerical values
|
|
11
|
+
tau: time delay (default=1)
|
|
12
|
+
m: embedding dimension (default=2)
|
|
13
|
+
dt: time step (default=1)
|
|
14
|
+
|
|
15
|
+
Returns:
|
|
16
|
+
float: largest Lyapunov exponent
|
|
17
|
+
"""
|
|
18
|
+
# Convert to numpy array if needed
|
|
19
|
+
x = np.array(data)
|
|
20
|
+
N = len(x)
|
|
21
|
+
|
|
22
|
+
# Create time-delay embedding
|
|
23
|
+
Y = np.zeros((N - (m - 1) * tau, m))
|
|
24
|
+
for i in range(m):
|
|
25
|
+
Y[:, i] = x[i * tau : N - (m - 1) * tau + i * tau]
|
|
26
|
+
|
|
27
|
+
# Calculate pairwise distances
|
|
28
|
+
D = squareform(pdist(Y))
|
|
29
|
+
np.fill_diagonal(D, np.inf) # Exclude self-matches
|
|
30
|
+
|
|
31
|
+
# Find nearest neighbors
|
|
32
|
+
nearest = np.argmin(D, axis=1)
|
|
33
|
+
|
|
34
|
+
# Calculate divergence
|
|
35
|
+
div = np.zeros(N - (m - 1) * tau - 1)
|
|
36
|
+
for i in range(len(div)):
|
|
37
|
+
div[i] = np.abs(x[i + 1] - x[nearest[i] + 1])
|
|
38
|
+
|
|
39
|
+
# Calculate Lyapunov exponent
|
|
40
|
+
positive_div = div[div > 0] # Avoid log(0)
|
|
41
|
+
if len(positive_div) == 0:
|
|
42
|
+
return 0.0
|
|
43
|
+
|
|
44
|
+
return np.mean(np.log(positive_div)) / dt
|
|
@@ -11,8 +11,11 @@ complexeva/dummies/networks.py
|
|
|
11
11
|
complexeva/measures/__init__.py
|
|
12
12
|
complexeva/measures/validate.py
|
|
13
13
|
complexeva/measures/dimension_1/__init__.py
|
|
14
|
+
complexeva/measures/dimension_1/compression_complexity.py
|
|
14
15
|
complexeva/measures/dimension_1/higuchi.py
|
|
16
|
+
complexeva/measures/dimension_1/kolmogorov_complexity.py
|
|
15
17
|
complexeva/measures/dimension_1/lempel_ziv.py
|
|
18
|
+
complexeva/measures/dimension_1/lyapunov_exponent.py
|
|
16
19
|
complexeva/measures/dimension_2/__init__.py
|
|
17
20
|
complexeva/measures/dimension_2/cbb_matrix.py
|
|
18
21
|
complexeva/measures/network_space/__init__.py
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
from .dimension_1.lempel_ziv import lempel_ziv
|
|
2
|
-
from .dimension_1.higuchi import hfd_matlab_equivalent, hfd_pyeeg
|
|
3
|
-
from .dimension_2.cbb_matrix import FractalHandlerMatrix
|
|
4
|
-
from .network_space.cbb_networkx import FractalHandlerNetworkX
|
|
5
|
-
|
|
6
|
-
__all__ = ["lempel_ziv", "hfd_matlab_equivalent", "hfd_pyeeg", "FractalHandlerMatrix", "FractalHandlerNetworkX"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|