私は、次の構造化された配列があります。私は、各idの最大vonmisesを取得しようとしていますソート値
import numpy as np
x = np.rec.array([(22,2,200.,2000.), (44,2,400.,4000.), (55,5,500.,5000.), (33,3,400.,3000.)],
dtype={'names':['subcase','id', 'vonmises','maxprincipal'], 'formats':['i4','i4','f4','f4']})
を。
例えば、id2のmax vonmisesは400になります。そして、対応するサブケースとmaxprincipalが必要です。ここで
は私がこれまでにやっていることである。ここでは
print repr(x[['subcase','id','vonmises']][(x['id']==2) & (x['vonmises']==max(x['vonmises'][x['id']==2]))])
が出力されます。
array([(44, 2, 400.0)],
dtype=(numpy.record, [('subcase', '<i4'), ('id', '<i4'), ('vonmises', '<f4')]))
私は今が午前問題は、私はこれがあるすべてのIDのために仕事をしたいということです配列内では、id = 2だけではありません。
array([(44, 2, 400.0),(55, 5, 500.0),(33, 3, 400.0)],
dtype=(numpy.record, [('subcase', '<i4'), ('id', '<i4'), ('vonmises', '<f4')]))
は、個々のIDを指定せずにこれを実現するための良い方法はあります:
すなわち、次の出力を取得したいですか?
ありがとう、あなたはフォーマットを詳しく教えていただけますか?どんなフォーマットをお勧めしますか? – snowleopard
あなたが解決しようとしている根本的な問題は何も分かりませんが、通常はグループごとに最大値をとり、グループの最大値をフィルタリングする操作をグループ化するために、 'dfのようなpandas' DataFrame'表現'と' df_'を使用します。 –
オクラホマ、それは素晴らしいbtw、感謝を働いた! – snowleopard