2

ここでは R ユーザーです。Numba を利用するために、Python で最初のプロジェクトを試みています。Numba は Numpy ではうまく機能するが、Pandas ではうまく機能しないことを読んだので、Pandas を避けようとしています。私の現在の質問は、実際には Numba とは何の関係もありませんが、Pandas を避ける理由として言及したかったのです。

2 つの Numpy 構造化配列があり、1 つは多くの重複があります。「numpy.lib.recfunctions.join_by」関数を使用してそれらを結合しようとしていますが、ドキュメントには重複が問題を引き起こすと明示的に記載されています。すべての重複に対して回避策を推奨できる人はいますか?

私の状況に似た例を次に示します。

import numpy as np
import numpy.lib.recfunctions as rfn

a = np.zeros(4, dtype={'names':('name', 'age'),
                       'formats':('U10','f8')})
a['name'] = ['Alex', 'Billy', 'Charlie', 'Dave']
a['age'] = [25, 25, 75, 75]

b = np.zeros(2, dtype={'names':('age', 'senior'),
                       'formats':('f8', 'i4')})
b['age'] = [25, 75]
b['senior'] = [0, 1]

c = rfn.join_by('age', a, b, jointype='leftouter', usemask=False)

print(c)
[(25., 'Alex',      0) (75., 'Billy',      1) (75., 'Charlie', 999999)
(75., 'Dave', 999999)]

これにより、(1) Billy の「年齢」が 25 から 75 に変更され、(2) Charlie と Dave の「senior」値が 999999 になります。

この関数の重複制限の回避策はありますか? 前もって感謝します。

4

2 に答える 2