11

私がデータ クリーニングで最もよく扱うことの 1 つは、欠損値です。R は、「NA」欠損データ ラベルを使用してこれを適切に処理します。Python では、マスクされた配列を処理する必要があるようです。これは、セットアップが非常に面倒で、十分に文書化されていないようです。このプロセスを Python で簡単にするための提案はありますか? これは、データ分析のために Python に移行する際の障害になりつつあります。ありがとう

更新numpy.ma モジュールのメソッドを見てから明らかにしばらく経ちました。少なくとも基本的な分析関数はマスク配列で使用できるようです。提供された例は、マスク配列の作成方法を理解するのに役立ちました (著者に感謝します)。Python の新しい統計手法 (今年の GSoC で開発されている) のいくつかにこの側面が組み込まれているかどうか、少なくとも完全なケース分析を行っているかどうかを確認したいと思います。

4

4 に答える 4

4

ライブラリを検討する場合、pandas(http://pandas.pydata.org/)は、numpyの上に構築されたライブラリであり、他にも多くの機能があります。

インテリジェントなデータアライメントと欠落データの統合処理:計算でラベルベースの自動アライメントを取得し、乱雑なデータを簡単に整然とした形式に操作します

私はこれを金融業界でほぼ1年間使用しています。金融業界では、データの欠落やアライメント不良が一般的であり、それによって私の生活は本当に楽になりました。

于 2012-06-18T16:12:12.410 に答える
1

DpplerShift が説明しているように、マスクされた配列は答えです。手早く汚い使い方をするために、ブール配列を使ったファンシー インデックスを使用できます。

>>> import numpy as np
>>> data = np.arange(10)
>>> valid_idx = data % 2 == 0 #pretend that even elements are missing

>>> # Get non-missing data
>>> data[valid_idx]
array([0, 2, 4, 6, 8])

valid_idx を他のデータのクイック マスクとして使用できるようになりました

>>> comparison = np.arange(10) + 10
>>> comparison[valid_idx]
array([10, 12, 14, 16, 18])
于 2009-09-04T17:22:16.193 に答える
1

マスクされた配列の問題についても質問します。以下にいくつかの例を示します。

import numpy as np
data = np.ma.masked_array(np.arange(10))
data[5] = np.ma.masked # Mask a specific value

data[data>6] = np.ma.masked # Mask any value greater than 6

# Same thing done at initialization time
init_data = np.arange(10)
data = np.ma.masked_array(init_data, mask=(init_data > 6))
于 2009-09-04T17:08:30.680 に答える