この質問は、NumPy
ndarray
いくつかの列値に従ってaをフィルタリングすることに関するものです。
私はかなり大きいNumPy
ndarray
(300000、50)を持っており、いくつかの特定の列の値に従ってフィルタリングしています。ndtypes
名前で各列にアクセスできるようにしています。
最初の列には名前が付けられcategory_code
ており、行列をフィルタリングして、category_code
がにある行のみを返す必要があり("A", "B", "C")
ます。
NumPy
ndarray
結果は、名前で列にアクセスできる別の結果である必要がありdtype
ます。
これが私が今していることです:
index = numpy.asarray([row['category_code'] in ('A', 'B', 'C') for row in data])
filtered_data = data[index]
次のようなリスト内包表記:
list = [row for row in data if row['category_code'] in ('A', 'B', 'C')]
filtered_data = numpy.asarray(list)
dtypes
私が最初に持っていたものにアクセスできなくなったため、機能しませんでした。
同じ結果を達成するためのより良い/よりPythonicな方法はありますか?
次のようになります。
filtered_data = data.where({'category_code': ('A', 'B','C'})
ありがとう!