您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 向Numpy ndarray添加元数据注释

5b51 2022/1/14 8:22:51 python 字数 2744 阅读 558 来源 www.jb51.cc/python

我有一个三个大型阵列的Numpy ndarray,我只想将路径存储到某处生成数据的文件中.一些玩具数据: A = array([[ 6.52479351e-01, 6.54686928e-01, 6.56884432e-01, ..., 2.55901861e+00, 2.56199503e+00, 2.56498647e+00],

概述

A = array([[  6.52479351e-01,6.54686928e-01,6.56884432e-01,...,2.55901861e+00,2.56199503e+00,2.56498647e+00],[             nan,nan,9.37914686e-17,1.01366425e-16,3.20371075e-16,-6.33655223e-17],8.52057308e-17,4.26943463e-16,1.51422386e-16,1.55097437e-16]],dtype=float32)

我不能将它作为数组附加到ndarray,因为它需要与其他三个相同的长度.

我可以添加np.zeros(len(A [0]))并将第一个值作为字符串,以便我可以用A [-1] [0]检索它,但这看起来很荒谬.

是否有一些元数据键我可以用来存储像/Documents/Data/foobar.txt这样的字符串’所以我可以用像A.Metadata.comment这样的东西来检索它?

谢谢!

class MetaArray(np.ndarray):
    """Array with Metadata."""

    def __new__(cls,array,dtype=None,order=None,**kwargs):
        obj = np.asarray(array,dtype=dtype,order=order).view(cls)                                 
        obj.Metadata = kwargs
        return obj

    def __array_finalize__(self,obj):
        if obj is None: return
        self.Metadata = getattr(obj,'Metadata',None)

用法示例:

>>> a = MetaArray([1,2,3],comment='/Documents/Data/foobar.txt')
>>> a.Metadata
{'comment': '/Documents/Data/foobar.txt'}

总结

以上是编程之家为你收集整理的python – 向Numpy ndarray添加元数据注释全部内容,希望文章能够帮你解决python – 向Numpy ndarray添加元数据注释所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶