リスト内の要素を何度も繰り返し、各繰り返しの後に定数オフセットを追加する整数シーケンスを作成しようとしています。各繰り返しの後にオフセットを追加しながら整数の反復シーケンスを生成する
私は同じN
人に関する情報の繰り返しブロックである多くの列を持つpandasデータフレームを持っています。たとえば、列は[age1、age2、age3、... ageN、height1、height2、height3、... heightN、...]であり、私は個人1と4に関連付けられた列を必要とします。特定の個人の列インデックスを生成したいので、df.iloc[:, cindices]
を使用してデータフレームのサブセットを作成できます。
次のコードは動作しますが、かなり醜いです。私はより清潔で明確な解決策(もっとPythonic)を望んでいました。
subjects = [1, 4]
N = 11; repeats = 3
columns = np.array([(np.arange(repeats) * N + i) for i in subjects])
cindices = columns.T.flatten()
# Information for individuals 1 & 4 are in these columns:
>> array([ 1, 4, 12, 15, 23, 26])
または単に:(科目+ N * np.arange(繰り返し)[:、なし])。ravel() '。 – Divakar
@Divakarはい、私はそれに来ていました;-) –
両方に投票してください。両方の非常に短い解決策。メルシ。 –