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