impy-array 2.4.1__tar.gz → 2.4.2__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.
Files changed (64) hide show
  1. {impy_array-2.4.1 → impy_array-2.4.2}/PKG-INFO +2 -2
  2. {impy_array-2.4.1 → impy_array-2.4.2}/impy/__init__.py +1 -1
  3. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_glcm.py +1 -1
  4. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_structures.py +1 -1
  5. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/lazy.py +8 -2
  6. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/tiled.py +5 -1
  7. {impy_array-2.4.1 → impy_array-2.4.2}/impy/core.py +5 -2
  8. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/gauss.py +1 -1
  9. {impy_array-2.4.1 → impy_array-2.4.2}/.gitignore +0 -0
  10. {impy_array-2.4.1 → impy_array-2.4.2}/LICENSE +0 -0
  11. {impy_array-2.4.1 → impy_array-2.4.2}/README.md +0 -0
  12. {impy_array-2.4.1 → impy_array-2.4.2}/impy/__main__.py +0 -0
  13. {impy_array-2.4.1 → impy_array-2.4.2}/impy/_const.py +0 -0
  14. {impy_array-2.4.1 → impy_array-2.4.2}/impy/_types.py +0 -0
  15. {impy_array-2.4.1 → impy_array-2.4.2}/impy/array_api.py +0 -0
  16. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/__init__.py +0 -0
  17. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_imshow.py +0 -0
  18. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/__init__.py +0 -0
  19. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_corr.py +0 -0
  20. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_deconv.py +0 -0
  21. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_docs.py +0 -0
  22. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_filters.py +0 -0
  23. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_linalg.py +0 -0
  24. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_misc.py +0 -0
  25. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_plot.py +0 -0
  26. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_process_numba.py +0 -0
  27. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_skimage.py +0 -0
  28. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/_utils/_transform.py +0 -0
  29. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/axesmixin.py +0 -0
  30. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/bases/__init__.py +0 -0
  31. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/bases/metaarray.py +0 -0
  32. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/bases/overload.py +0 -0
  33. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/big.py +0 -0
  34. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/imgarray.py +0 -0
  35. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/label.py +0 -0
  36. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/labeledarray.py +0 -0
  37. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/phasearray.py +0 -0
  38. {impy_array-2.4.1 → impy_array-2.4.2}/impy/arrays/specials.py +0 -0
  39. {impy_array-2.4.1 → impy_array-2.4.2}/impy/axes/__init__.py +0 -0
  40. {impy_array-2.4.1 → impy_array-2.4.2}/impy/axes/_axes.py +0 -0
  41. {impy_array-2.4.1 → impy_array-2.4.2}/impy/axes/_axes_tuple.py +0 -0
  42. {impy_array-2.4.1 → impy_array-2.4.2}/impy/axes/_axis.py +0 -0
  43. {impy_array-2.4.1 → impy_array-2.4.2}/impy/axes/_slicer.py +0 -0
  44. {impy_array-2.4.1 → impy_array-2.4.2}/impy/binder.py +0 -0
  45. {impy_array-2.4.1 → impy_array-2.4.2}/impy/collections.py +0 -0
  46. {impy_array-2.4.1 → impy_array-2.4.2}/impy/correlation.py +0 -0
  47. {impy_array-2.4.1 → impy_array-2.4.2}/impy/frame/__init__.py +0 -0
  48. {impy_array-2.4.1 → impy_array-2.4.2}/impy/frame/frames.py +0 -0
  49. {impy_array-2.4.1 → impy_array-2.4.2}/impy/io.py +0 -0
  50. {impy_array-2.4.1 → impy_array-2.4.2}/impy/lazy/__init__.py +0 -0
  51. {impy_array-2.4.1 → impy_array-2.4.2}/impy/lazy/core.py +0 -0
  52. {impy_array-2.4.1 → impy_array-2.4.2}/impy/lazy/random.py +0 -0
  53. {impy_array-2.4.1 → impy_array-2.4.2}/impy/random.py +0 -0
  54. {impy_array-2.4.1 → impy_array-2.4.2}/impy/roi.py +0 -0
  55. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/__init__.py +0 -0
  56. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/axesop.py +0 -0
  57. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/deco.py +0 -0
  58. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/misc.py +0 -0
  59. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/slicer.py +0 -0
  60. {impy_array-2.4.1 → impy_array-2.4.2}/impy/utils/utilcls.py +0 -0
  61. {impy_array-2.4.1 → impy_array-2.4.2}/impy/viewer/__init__.py +0 -0
  62. {impy_array-2.4.1 → impy_array-2.4.2}/impy/viewer/utils.py +0 -0
  63. {impy_array-2.4.1 → impy_array-2.4.2}/impy/viewer/viewer.py +0 -0
  64. {impy_array-2.4.1 → impy_array-2.4.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: impy-array
3
- Version: 2.4.1
3
+ Version: 2.4.2
4
4
  Summary: Speed up coding/extending image analysis in Python.
5
5
  Project-URL: Download, https://github.com/hanjinliu/impy
6
6
  Author-email: Hanjin Liu <liuhanjin-sc@g.ecc.u-tokyo.ac.jp>
@@ -1,4 +1,4 @@
1
- __version__ = "2.4.1"
1
+ __version__ = "2.4.2"
2
2
  __author__ = "Hanjin Liu"
3
3
  __email__ = "liuhanjin-sc@g.ecc.u-tokyo.ac.jp"
4
4
 
@@ -130,4 +130,4 @@ def check_glcm(self, bins, rescale_max):
130
130
  raise ValueError(f"`bins` must be a divisor of {imax+1} (max value of {self.dtype}).")
131
131
  self = self // ((imax+1) // bins)
132
132
 
133
- return self, bins, rescale_max
133
+ return self, bins, rescale_max
@@ -37,4 +37,4 @@ def ball_like_odd(radius, ndim):
37
37
  l = xc*2 + 1
38
38
  coords = xp.indices((l,)*ndim)
39
39
  s = xp.sum((a-xc)**2 for a in coords)
40
- return xp.array(s <= radius*radius, dtype=bool)
40
+ return xp.array(s <= radius*radius, dtype=bool)
@@ -281,6 +281,12 @@ class LazyImgArray(AxesMixin):
281
281
  chunk_info = ", ".join([f"{s}({o})" for s, o in zip(self.chunksize, self.axes)])
282
282
  return chunk_info
283
283
 
284
+ def astype(self, dtype: DTypeLike, copy: bool = True) -> LazyImgArray:
285
+ """Convert the array to the specified data type."""
286
+ out = self.__class__(self.value.astype(dtype, copy=copy))
287
+ out._set_info(self)
288
+ return out
289
+
284
290
  def _repr_dict_(self):
285
291
  return {
286
292
  "name": self.name,
@@ -555,9 +561,9 @@ class LazyImgArray(AxesMixin):
555
561
  dtype = self.dtype
556
562
  all_axes = str(self.axes)
557
563
  def _func(input: xp.ndarray, *args, **kwargs):
558
- out = xp.empty(input.shape, input.dtype)
564
+ out = xp.empty(input.shape, dtype=dtype)
559
565
  for sl in iter_slice(input.shape, c_axes, all_axes):
560
- out[sl] = func(input[sl], *args, **kwargs)
566
+ out[sl] = func(input[sl], *args, **kwargs).astype(dtype, copy=False)
561
567
  return out
562
568
  depth = switch_slice(c_axes, self.axes, 0, depth)
563
569
  return da.map_overlap(
@@ -94,9 +94,12 @@ class TiledImage(Generic[_T]):
94
94
  from dask import array as da
95
95
 
96
96
  input = da.from_array(img.value, chunks=self._chunks)
97
+
98
+ def _func(arr: np.ndarray, *args, **kwargs) -> np.ndarray:
99
+ return func(arr, *args, **kwargs).astype(arr.dtype, copy=False)
97
100
  out: np.ndarray = xp.asnumpy(
98
101
  da.map_overlap(
99
- func,
102
+ _func,
100
103
  input,
101
104
  *args,
102
105
  depth=self.depth,
@@ -114,6 +117,7 @@ class TiledImage(Generic[_T]):
114
117
  c_axes="",
115
118
  depth=self.depth,
116
119
  boundary=self.boundary,
120
+ dtype=img.dtype,
117
121
  args=args,
118
122
  kwargs=kwargs,
119
123
  )
@@ -121,8 +121,11 @@ def array(
121
121
  dtype = arr.dtype
122
122
 
123
123
  axes, name = _normalize_params(axes, name, like)
124
-
125
- _arr = np.array(arr, dtype=dtype, copy=copy)
124
+
125
+ if copy:
126
+ _arr = np.array(arr, dtype=dtype)
127
+ else:
128
+ _arr = np.asarray(arr, dtype=dtype)
126
129
 
127
130
  # Automatically determine axes
128
131
  if axes is None:
@@ -156,4 +156,4 @@ class GaussianBackground(DiagonalGaussian):
156
156
  self.sg = np.array(data.shape, dtype="float32")
157
157
  self.b, p95 = np.percentile(data, [5, 95])
158
158
  self.a = p95 - self.b
159
- return None
159
+ return None
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