python – 向Numpy ndarray添加元数据注释
发布时间:2020-12-30 20:38:25 所属栏目:Python 来源:互联网
导读:我有一个三个大型阵列的Numpy ndarray,我只想将路径存储到某处生成数据的文件中.一些玩具数据: A = array([[ 6.52479351e-01, 6.54686928e-01, 6.56884432e-01, ..., 2.55901861e+00, 2.56199503e+00, 2.56498647e+00],
我有一个三个大型阵列的Numpy ndarray,我只想将路径存储到某处生成数据的文件中.一些玩具数据: 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这样的东西来检索它? 谢谢! 解决方法TobiasR的评论是最简单的方法,但您也可以将ndarray子类化.见 numpy documentation或 this questionclass 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中解析RDF文件
- python-2.7 – 在Python 2.7中手动构建ConfigParser的深层副
- ImportError:没有模块名称’matplotlib’Python 3.3
- python – Fedora上的psycopg2
- python:re.sub的replace函数不接受额外的参数 – 如何避免
- 为什么python设计为str(无)返回’None’而不是空字符串?
- python – 将数字字符引用表示法转换为unicode字符串
- python – 如何在TensorFlow中实现递归神经网络?
- python – 从文本文件中读取多个数字
- python – numpy.array的部分内容