错误“numpy.int32”对象不支持项分配

2024-09-28 22:24:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个错误

Traceback (most recent call last):
File "C:\Users\User1\Desktop\cellh5_scripts\ewa_pnas_fate.py", line 90,     in <module>
ec.combine_classifiers("Event labels combined")
File "C:\Users\User1\Desktop\cellh5_scripts\ewa_pnas_fate.py", line 53, in combine_classifiers
pnas_class[pnas_class==3] = 1
TypeError: 'numpy.int32' object does not support item assignment

通过运行代码

def combine_classifiers(self, output_name):
    all_combined_classes = []
    for _, (plate_name, w, p, t1, t2, track_ids, track_labels) in self.mapping[['Plate', 
                                                                        'Well', 
                                                                        'Site', 
                                                                        'Gene Symbol',
                                                                        'siRNA ID', 
                                                                        'Event track ids',
                                                                        'Event track labels']].iterrows(): 
        combined_classes = []
        ch5_file_handle = self.cellh5_handles[plate_name]
        ch5_pos = ch5_file_handle.get_position(w, str(p))



        for track_id, track_label in zip(track_ids, track_labels):

            h2b_class = track_label.copy()
            print(track_id)
            pnas_class = ch5_pos.get_class_prediction('secondary__expanded')[track_id]['label_idx'] + 1
            print(pnas_class)


            inter_idx = h2b_class == 1 
            pnas_class[pnas_class==3] = 1
            pnas_class[pnas_class==2]+=2
            combined_class = h2b_class
            combined_class[inter_idx] = pnas_class[inter_idx] 
            combined_classes.append(combined_class)

        all_combined_classes.append(combined_classes)

    self.mapping[output_name] = pandas.Series(all_combined_classes) 

我打印的pnas_类是1,track_id是50708。我想知道代码设计者想在这个部分做什么:

inter_idx = h2b_class == 1 
pnas_class[pnas_class==3] = 1
pnas_class[pnas_class==2]+=2
combined_class = h2b_class
combined_class[inter_idx] = pnas_class[inter_idx] 

我怎么能把它改成同样的意思呢?


Tags: nameinselfidlabelstrackclassclasses