各行の長さを表したベクトルから配列操作

How do you set numpy array elements to zero according to length vector – StackOverflow

データマトリックスがあって,column-wise(axis=1)について,
それを任意長のデータ(超える部分をゼロ処理)にしたいという場合.

numpyの様々な場合で共通する話だけど,indexerを考える.

import numpy as np

d = np.arange(25).reshape(5,5)
l = np.array([2, 2, 3, 4, 5])
np.where(l[:, np.newaxis] <= np.arange(d.shape[1]), 0, d)

array([[ 0, 1, 0, 0, 0],
[ 5, 6, 0, 0, 0],
[10, 11, 12, 0, 0],
[15, 16, 17, 18, 0],
[20, 21, 22, 23, 24]])

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中