簡體   English   中英

使用 Numpy 對兩個向量進行分組

[英]Grouping two vectors using Numpy

我有兩個向量w = [1, 1, 2, 2, 2, 3, 3]a = [True, False, True, True, True, True, True]我想按w中的數字分組到計算 a 中選定項的a 因此,對於給定的示例,結果將是r = [True & False, True & True & True, True & True] 有沒有使用 Numpy 進行此計算的好方法?

由於您標記了 numpy,您可以使用列表理解、 numpy.uniquenumpy.all

import numpy as np

w = np.array([1, 1, 2, 2, 2, 3, 3])
a = np.array([True, False, True, True, True, True, True])
r = [np.all(a[w==i]) for i in np.unique(w)]

r
[False, True, True]

或者,如果您有 pandas 依賴項:

import pandas as pd

df = pd.DataFrame({'w':w, 'a':a})
r = df.groupby('w').agg(np.all).reset_index()

r
   w      a
0  1  False
1  2   True
2  3   True

這可以通過一個簡單的列表理解來完成:

>>> [all(a[np.where(w == i)]) for i in np.unique(w)] 
[False, True, True]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM