2
columnFour = [data[0::, 1] == 1, data[0::, 4]]

データはテーブルで、1 は選択する変数 (1 に等しい) で、4 は 1 次元の配列に引き出そうとしている変数です。

4 列の値の一部が空白 ('') であり、Python から得られるエラーは次のとおりです。

Traceback (most recent call last):
File "<filename>", line 62, in <module>
  print np.mean(age, dtype=float);
File "D:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 2373, in mean
  return _wrapit(a, 'mean', axis, dtype, out)
File "D:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
  result = getattr(asarray(obj),method)(*args, **kwds)
File "D:\Python27\lib\site-packages\numpy\core\numeric.py", line 235, in asarray
  return array(a, dtype, copy=False, order=order)
ValueError: cannot set an array element with a sequence

列 4 の null 以外の数字をすべて選択するか、null を含むすべてを選択するにはどうすればよいですか? すべてを選択したいのですが、どちらでもかまいません。列 4 のデータの平均を計算して null 値に再挿入しようとしていますが、異なる列 1 の値を平均しています。

たとえば、列 4 のすべての数値が平均化され、その平均が再挿入されるcolumn 1 == 1null が再挿入されます。column 1 == 1

編集: for ループを使用して、データを処理しました。

データ内の x の場合: x[1] == '1' および x[4] の場合: first.append(np.float(x[4]))
if x[1] == '2' および x[4] : second.append(np.float(x[4])) if x[1] == '3' and x[4]: third.append(np.float(x[4]))

結果は、探していた異なる値を持つ 3 つの配列であり、平均してデータの穴に戻すことができます。

4

1 に答える 1

0

次のようなものが欲しいと思います:

mask = data[:, 1] == 1
average = np.mean(data[mask, 4])

あなたが提供したコードにはリスト内包表記がありません.1data[:, 1] == 1番目と2番目の2つの要素を持つリストを作成するだけdata[:, 4]です.

于 2012-12-05T22:30:24.413 に答える