我有一个子类 numpy 数组 - 一个带有元数据(例如单位)的“光谱轴”。
我可以使用创建任何实例的副本arr.copy或使用例如arr2=arr[2:5].
有什么方法可以创建具有不同形状但保持相同元数据/数据类型的这些数组之一的新实例?
一个简单的解决方案是在您的子类中定义一个.reshape方法。此.reshape方法应调用__array_finalize__负责从对象复制元数据的方法。
例如,MaskedArray子类使用_update_from私有方法将一些元数据(...)从一个对象复制_fill_value到_optinfo另一个对象,或者如果这些元数据尚不可用,则为这些元数据设置默认值。被_update_method称为内__array_finalize__。您可以按照来源作为示例。