15

このトピック(構造化されたnumpy配列にフィールドを追加する最もクリーンな方法)についてすでに質問があったことを私は知っています。を参照してください。

構造化されたnumpy配列にフィールドを追加する

しかし、私はそこに与えられた答えについて質問があります...

numpy 1.3を使用している場合は、numpy.lib.recfunctions.append_fields()もあります。

私はまだnumpy1.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')

inは、列名なしyで「plain」にすることもできることに注意してください。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

再関数のドキュメントに関する限り、ここにあります:http: //pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html

それを読んでも理解できない場合は、コードサンプル(たとえば、numpy.lib.recfunctionsをインポートしましたか?)とエラーメッセージまたは望ましくない結果を提供してください。修正方法を判断できます。

于 2011-03-13T10:32:09.393 に答える