Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot index with list of ints #22

Open
bendichter opened this issue Sep 23, 2020 · 1 comment
Open

cannot index with list of ints #22

bendichter opened this issue Sep 23, 2020 · 1 comment

Comments

@bendichter
Copy link
Contributor

No description provided.

@bendichter bendichter changed the title cannot use list of ints cannot index with list of ints Sep 23, 2020
@alejoe91
Copy link
Contributor

To reproduce the error you can use this minimal example (using this commit of roiextractors: catalystneuro/roiextractors@6a3c9c4)

import roiextractors as re

imag, seg = re.example_datasets.toy_example(duration=30, num_rois=10, 
                                            mode='gaussian', decay_time=0.5, sampling_frequency=30)
re.Hdf5ImagingExtractor.write_imaging(imag, "write_test.h5", verbose=True, chunk_size=None,
                                      chunk_mb=10, overwrite=True)
imag_load = re.Hdf5ImagingExtractor("write_test.h5")
video = imag_load.get_video()

Traceback:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~/anaconda3/envs/imaging/lib/python3.7/site-packages/lazy_ops/lazy_loading.py in _slice_composition(self, new_slice)
    256                         if new_slice[i].dtype.kind != 'b':
--> 257                             raise ValueError("Indices must be either integers or booleans")
    258                         else:

ValueError: Indices must be either integers or booleans

During handling of the above exception, another exception occurred:

IndexError                                Traceback (most recent call last)
<ipython-input-8-9ffa7d668817> in <module>
----> 1 im0 = imag_load.get_video()

~/Documents/Codes/imaging/roiinterface/roiextractors/roiextractors/extraction_tools.py in corrected_args(imaging, start_frame, end_frame, channel)
    123         start_frame, end_frame = cast_start_end_frame(start_frame, end_frame)
    124         channel = int(channel)
--> 125         get_videos_correct_arg = func(imaging, start_frame=start_frame, end_frame=end_frame, channel=channel)
    126 
    127         return get_videos_correct_arg

~/Documents/Codes/imaging/roiinterface/roiextractors/roiextractors/imagingextractor.py in get_video(self, start_frame, end_frame, channel)
     57     @check_get_videos_args
     58     def get_video(self, start_frame: int = None, end_frame: int = None, channel: int = 0) -> NumpyArray:
---> 59         return self.get_frames(range(start_frame, end_frame), channel)
     60 
     61     @staticmethod

~/Documents/Codes/imaging/roiinterface/roiextractors/roiextractors/extraction_tools.py in corrected_args(imaging, frame_idxs, channel)
     93             frame_idxs = np.array(frame_idxs)
     94             assert np.all(frame_idxs < imaging.get_num_frames()), "'frame_idxs' exceed number of frames"
---> 95         get_frames_correct_arg = func(imaging, frame_idxs, channel)
     96 
     97         if len(frame_idxs) == 1:

~/Documents/Codes/imaging/roiinterface/roiextractors/roiextractors/extractors/hdf5imagingextractor/hdf5imagingextractor.py in get_frames(self, frame_idxs, channel)
     73     def get_frames(self, frame_idxs, channel=0):
     74         if frame_idxs.size > 1 and np.all(np.diff(frame_idxs) > 0) or frame_idxs.size == 1:
---> 75             return lazy_ops.DatasetView(self._video).lazy_slice[channel, frame_idxs]
     76         else:
     77             # unsorted multiple frame idxs

~/anaconda3/envs/imaging/lib/python3.7/site-packages/lazy_ops/lazy_loading.py in __getitem__(self, new_slice)
    168           lazy object
    169         """
--> 170         key_reinit = self._slice_composition(new_slice)
    171         if self._lazy_slice_call:
    172             self._lazy_slice_call = False

~/anaconda3/envs/imaging/lib/python3.7/site-packages/lazy_ops/lazy_loading.py in _slice_composition(self, new_slice)
    274                         slice_result += (new_slice_i,)
    275                 except:
--> 276                     raise IndexError("Indices must be either integers, iterators of integers, slice objects, or numpy boolean arrays")
    277         slice_result += self.key[len(new_slice):]
    278 

IndexError: Indices must be either integers, iterators of integers, slice objects, or numpy boolean arrays

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants