問題タブ [cudf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
102 参照

python - 文字列比較ブースティング用の cuDF

2 つの大きな csv ファイル間の一致を見つける作業を行っています。この関数を使用して、2 つの文字列間の類似性を計算します。指定された比率が事前定義されたしきい値よりも大きい場合、これを一致として受け入れます。

def similar(a, b): return SequenceMatcher(None, a, b).ratio()

両方のファイルのすべての行を確認する必要があるため、時間の複雑さは O(n^2) です。ハッシュを使用して時間の複雑さを O(n) に減らすことを検討しましたが、それは私の一致を柔軟性のない完全一致に制限します。ただし、最初の方法では、CPU を搭載したローカル コンピューターで実行するには数日かかります。そこで、cuDF を使って GPU での動作を高速化する方法はないかと考えています。

また、cuDF の applymap 関数を試したところ、文字列 dtype をサポートしていないとのことでした。これを実装するために cuDF を使用できる他の方法はありますか? ありがとうございました!

0 投票する
1 に答える
430 参照

python - 順序付けられたデータを使用してpython cuDF groupbyを適用する

イベントの階層がある順序付けられたデータがあります。各列は、階層内でその上のイベントに関連するイベントの一意の ID です。1 か月で各日の番号が一意であり、1 年で各月の数値が一意であることに似ています。1 から 365 までの番号を付けて 1 年で毎日を一意にするように、最下位レベルを最上位レベル内で一意にしたいと考えています。私の使用例は、日、月、年に固有のものではありません。

前:

後:

目標は、各 ID に対して EVENT_3A があり、EVENT_3A が EVENT_1 に関して EVENT_3 が発生する順序である列を取得することです (あたかも EVENT_2 がなかったかのように)。さらに、これを個別に計算する必要がある多くの ID があります。今はCPUでやっているのですが、時間がかかるのでGPUに切り替えたいと思っています。

私の主なアイデアはgroupby('ID').apply_grouped()orを実行することですが、 or関数groupby('ID').agg()に何を入れればよいかわかりません。以前は CPU 上の dask でこれを行っていましたが、グループ化された DataFrame が関数に直接渡されるため、より直感的でした。cuDF では incols を渡す必要があり、それらを DataFrame として扱う方法がわかりません。apply_grouped()agg()apply()

約 5,000 個の ID があるため、グループ化された各 ID が GPU のコアによって処理されるのが理想的ですが、GPU のプログラミングは初めてなので、そのように機能するかどうかはわかりません。

提案や解決策は役に立ちます、ありがとう。

0 投票する
1 に答える
134 参照

python - リスト内包表記を使用して cuDF の Python で変更された groupby ngroup

groupby().ngroups() パンダの機能に似た機能を作成しようとしています。違いは、各サブグループ カウントを 0 から再開することです。次のデータが与えられます。

私が欲しい

これを実装するための最良の方法はgroupby()、EVENT_1 に対して実行し、各グループ内で EVENT_2 の一意の値を取得してから、EVENT_2A を一意の値のインデックスとして設定することです。たとえば、EVENT_1 == 0グループでは、一意の値は[3, 5, 9]であり、EVENT_2A を EVENT_2 の対応する値の一意の値リストのインデックスに設定します。

私が書いたコードはここにあります。EVENT_2 は常に EVENT_1 に関してソートされるため、O(n) でこのような一意の値を見つけることができることに注意してください。

これに関する問題は、ユーザー定義関数でのリストの使用に関するエラーがあるように見えることですcount()。Numba によると、その JIT nopython コンパイラはリスト内包表記を処理でき、実際に関数を使用すると

非推奨の警告がありますが、機能します。

cudf を使用して得られるエラーは

これは numba からの非推奨警告に関連していますか? uq静的リストとして設定しても、エラーが発生します。リストの理解の問題、または私の問題全体に対する解決策は大歓迎です。ありがとう。