15

我知道已经有关于这个主题的问题(将字段添加到结构化 numpy 数组的最简洁方法),请参阅

将字段添加到结构化 numpy 数组

但我对那里给出的答案有疑问......

如果您使用的是 numpy 1.3,还有 numpy.lib.recfunctions.append_fields()

我还有 numpy 1.3,但是它不识别这个函数,而且我在 numpy 的文档中也没有找到任何关于它的信息。函数发生了什么?是否有其他功能可以做到这一点?

4

3 回答 3

15

http://projects.scipy.org/numpy/browser/branches/1.3.x/numpy/lib/recfunctions.py?rev=8229

你进口了吗?

from numpy.lib import recfunctions

recfunctions.append_fields(*your_args)  # base, names, data, ...

似乎一切正常:

Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.__version__
'1.3.0'
>>> from numpy.lib.recfunctions import append_fields
>>> append_fields
<function append_fields at 0x9e3e80c>
>>> 
于 2011-03-13T10:45:18.380 回答
14

这是一个如何使用的具体示例append_fields(..)(诚然基于此处的其他答案):

import numpy as np
x = np.array(np.arange(0,10), dtype = [('x', float)])
y = np.array(np.arange(10,20), dtype = [('y', float)])

from numpy.lib.recfunctions import append_fields

z = append_fields(x, 'y', y)

在哪里

z.dtype.names

会给

('x', 'y')

请注意,yin 也可以是ndarray没有列名的“普通”:

y = np.arange(10,20)

或者您可以将列重命名为y其他名称(即使 y 是具有列名的结构化数组):

z = append_fields(x, 'p', y)

(在 numpy 1.6.1 中测试)

于 2015-07-15T10:20:55.727 回答
3

至于recfunctions的文档,这里是:http ://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html

如果您在阅读后无法弄清楚,那么请提供一些代码示例(例如,您是否导入了 numpy.lib.recfunctions?)以及错误消息或不期望的结果,以便我们确定如何修复它。

于 2011-03-13T10:32:09.393 回答